@hjmds/react 1.47.0 → 1.49.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.
@@ -78,6 +78,7 @@ export declare const publicExportEntries: {
78
78
  readonly Dialog: readonly ["./overlays"];
79
79
  readonly Divider: readonly ["./display"];
80
80
  readonly DocumentResource: readonly ["./document-resource"];
81
+ readonly DrawingEditor: readonly ["./drawing-editor"];
81
82
  readonly DurationField: readonly ["./duration-field"];
82
83
  readonly EditorScreen: readonly ["./screen-flows"];
83
84
  readonly EffectSurface: readonly ["./effect-surface"];
@@ -182,6 +183,7 @@ export declare const publicExportEntries: {
182
183
  readonly Select: readonly ["./forms"];
183
184
  readonly SelectionActionBar: readonly ["./collection-editing"];
184
185
  readonly SettingsScreen: readonly ["./screens"];
186
+ readonly ShareSheet: readonly ["./share-sheet"];
185
187
  readonly Sheet: readonly ["./overlays"];
186
188
  readonly ShortcutRail: readonly ["./shortcut-rail"];
187
189
  readonly ShortcutRecorder: readonly ["./authoring-tools"];
@@ -1 +1 @@
1
- {"version":3,"file":"public-exports.generated.d.ts","sourceRoot":"","sources":["../src/public-exports.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAytBuC,CAAC"}
1
+ {"version":3,"file":"public-exports.generated.d.ts","sourceRoot":"","sources":["../src/public-exports.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+tBuC,CAAC"}
@@ -241,6 +241,9 @@ export const publicExportEntries = {
241
241
  DocumentResource: [
242
242
  "./document-resource"
243
243
  ],
244
+ DrawingEditor: [
245
+ "./drawing-editor"
246
+ ],
244
247
  DurationField: [
245
248
  "./duration-field"
246
249
  ],
@@ -558,6 +561,9 @@ export const publicExportEntries = {
558
561
  SettingsScreen: [
559
562
  "./screens"
560
563
  ],
564
+ ShareSheet: [
565
+ "./share-sheet"
566
+ ],
561
567
  Sheet: [
562
568
  "./overlays"
563
569
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"public-exports.generated.js","sourceRoot":"","sources":["../src/public-exports.generated.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS,EAAE;QACT,WAAW;KACZ;IACD,eAAe,EAAE;QACf,iBAAiB;KAClB;IACD,YAAY,EAAE;QACZ,iBAAiB;QACjB,YAAY;KACb;IACD,eAAe,EAAE;QACf,oBAAoB;KACrB;IACD,KAAK,EAAE;QACL,SAAS;KACV;IACD,SAAS,EAAE;QACT,aAAa;KACd;IACD,WAAW,EAAE;QACX,YAAY;KACb;IACD,wBAAwB,EAAE;QACxB,sBAAsB;KACvB;IACD,MAAM,EAAE;QACN,UAAU;KACX;IACD,iBAAiB,EAAE;QACjB,oBAAoB;KACrB;IACD,WAAW,EAAE;QACX,UAAU;KACX;IACD,KAAK,EAAE;QACL,SAAS;KACV;IACD,UAAU,EAAE;QACV,SAAS;KACV;IACD,kBAAkB,EAAE;QAClB,mBAAmB;KACpB;IACD,gBAAgB,EAAE;QAChB,eAAe;KAChB;IACD,cAAc,EAAE;QACd,eAAe;KAChB;IACD,gBAAgB,EAAE;QAChB,eAAe;KAChB;IACD,MAAM,EAAE;QACN,WAAW;KACZ;IACD,WAAW,EAAE;QACX,WAAW;KACZ;IACD,KAAK,EAAE;QACL,WAAW;KACZ;IACD,QAAQ,EAAE;QACR,SAAS;KACV;IACD,YAAY,EAAE;QACZ,mBAAmB;KACpB;IACD,SAAS,EAAE;QACT,cAAc;KACf;IACD,UAAU,EAAE;QACV,eAAe;KAChB;IACD,gBAAgB,EAAE;QAChB,cAAc;KACf;IACD,6BAA6B,EAAE;QAC7B,cAAc;KACf;IACD,UAAU,EAAE;QACV,cAAc;QACd,cAAc;KACf;IACD,MAAM,EAAE;QACN,WAAW;KACZ;IACD,UAAU,EAAE;QACV,WAAW;KACZ;IACD,QAAQ,EAAE;QACR,YAAY;KACb;IACD,IAAI,EAAE;QACJ,WAAW;KACZ;IACD,QAAQ,EAAE;QACR,YAAY;KACb;IACD,cAAc,EAAE;QACd,mBAAmB;KACpB;IACD,WAAW,EAAE;QACX,eAAe;KAChB;IACD,WAAW,EAAE;QACX,SAAS;KACV;IACD,iBAAiB,EAAE;QACjB,WAAW;KACZ;IACD,WAAW,EAAE;QACX,WAAW;KACZ;IACD,eAAe,EAAE;QACf,iBAAiB;KAClB;IACD,cAAc,EAAE;QACd,iBAAiB;KAClB;IACD,eAAe,EAAE;QACf,iBAAiB;KAClB;IACD,cAAc,EAAE;QACd,iBAAiB;KAClB;IACD,eAAe,EAAE;QACf,iBAAiB;KAClB;IACD,eAAe,EAAE;QACf,iBAAiB;KAClB;IACD,UAAU,EAAE;QACV,WAAW;KACZ;IACD,QAAQ,EAAE;QACR,aAAa;KACd;IACD,aAAa,EAAE;QACb,aAAa;KACd;IACD,IAAI,EAAE;QACJ,aAAa;KACd;IACD,SAAS,EAAE;QACT,cAAc;KACf;IACD,eAAe,EAAE;QACf,aAAa;KACd;IACD,mBAAmB,EAAE;QACnB,aAAa;KACd;IACD,SAAS,EAAE;QACT,cAAc;KACf;IACD,oBAAoB,EAAE;QACpB,kBAAkB;KACnB;IACD,WAAW,EAAE;QACX,eAAe;KAChB;IACD,iBAAiB,EAAE;QACjB,eAAe;KAChB;IACD,cAAc,EAAE;QACd,mBAAmB;KACpB;IACD,WAAW,EAAE;QACX,gBAAgB;KACjB;IACD,iBAAiB,EAAE;QACjB,gBAAgB;KACjB;IACD,QAAQ,EAAE;QACR,SAAS;KACV;IACD,cAAc,EAAE;QACd,mBAAmB;KACpB;IACD,gBAAgB,EAAE;QAChB,gBAAgB;KACjB;IACD,mBAAmB,EAAE;QACnB,gBAAgB;KACjB;IACD,eAAe,EAAE;QACf,cAAc;KACf;IACD,iBAAiB,EAAE;QACjB,WAAW;KACZ;IACD,SAAS,EAAE;QACT,UAAU;KACX;IACD,iBAAiB,EAAE;QACjB,sBAAsB;KACvB;IACD,WAAW,EAAE;QACX,gBAAgB;KACjB;IACD,sBAAsB,EAAE;QACtB,WAAW;KACZ;IACD,eAAe,EAAE;QACf,oBAAoB;KACrB;IACD,gBAAgB,EAAE;QAChB,kBAAkB;KACnB;IACD,iBAAiB,EAAE;QACjB,kBAAkB;KACnB;IACD,YAAY,EAAE;QACZ,WAAW;KACZ;IACD,SAAS,EAAE;QACT,cAAc;KACf;IACD,SAAS,EAAE;QACT,cAAc;KACf;IACD,UAAU,EAAE;QACV,eAAe;QACf,SAAS;KACV;IACD,eAAe,EAAE;QACf,cAAc;KACf;IACD,eAAe,EAAE;QACf,WAAW;KACZ;IACD,MAAM,EAAE;QACN,YAAY;KACb;IACD,OAAO,EAAE;QACP,WAAW;KACZ;IACD,gBAAgB,EAAE;QAChB,qBAAqB;KACtB;IACD,aAAa,EAAE;QACb,kBAAkB;KACnB;IACD,YAAY,EAAE;QACZ,gBAAgB;KACjB;IACD,aAAa,EAAE;QACb,kBAAkB;KACnB;IACD,UAAU,EAAE;QACV,YAAY;KACb;IACD,mBAAmB,EAAE;QACnB,uBAAuB;KACxB;IACD,gBAAgB,EAAE;QAChB,iBAAiB;KAClB;IACD,KAAK,EAAE;QACL,SAAS;KACV;IACD,UAAU,EAAE;QACV,eAAe;KAChB;IACD,UAAU,EAAE;QACV,eAAe;QACf,SAAS;KACV;IACD,cAAc,EAAE;QACd,sBAAsB;KACvB;IACD,oBAAoB,EAAE;QACpB,0BAA0B;KAC3B;IACD,aAAa,EAAE;QACb,kBAAkB;KACnB;IACD,gBAAgB,EAAE;QAChB,eAAe;KAChB;IACD,iBAAiB,EAAE;QACjB,uBAAuB;KACxB;IACD,IAAI,EAAE;QACJ,SAAS;KACV;IACD,cAAc,EAAE;QACd,mBAAmB;KACpB;IACD,IAAI,EAAE;QACJ,UAAU;KACX;IACD,UAAU,EAAE;QACV,eAAe;KAChB;IACD,OAAO,EAAE;QACP,WAAW;KACZ;IACD,iBAAiB,EAAE;QACjB,kBAAkB;KACnB;IACD,WAAW,EAAE;QACX,YAAY;KACb;IACD,IAAI,EAAE;QACJ,WAAW;KACZ;IACD,UAAU,EAAE;QACV,WAAW;KACZ;IACD,cAAc,EAAE;QACd,WAAW;KACZ;IACD,QAAQ,EAAE;QACR,WAAW;KACZ;IACD,KAAK,EAAE;QACL,WAAW;KACZ;IACD,gBAAgB,EAAE;QAChB,gBAAgB;KACjB;IACD,eAAe,EAAE;QACf,oBAAoB;KACrB;IACD,WAAW,EAAE;QACX,gBAAgB;KACjB;IACD,kBAAkB,EAAE;QAClB,gBAAgB;KACjB;IACD,gBAAgB,EAAE;QAChB,YAAY;KACb;IACD,kBAAkB,EAAE;QAClB,kBAAkB;KACnB;IACD,aAAa,EAAE;QACb,kBAAkB;KACnB;IACD,UAAU,EAAE;QACV,sBAAsB;KACvB;IACD,MAAM,EAAE;QACN,UAAU;KACX;IACD,SAAS,EAAE;QACT,SAAS;KACV;IACD,SAAS,EAAE;QACT,cAAc;KACf;IACD,IAAI,EAAE;QACJ,WAAW;KACZ;IACD,IAAI,EAAE;QACJ,WAAW;KACZ;IACD,gBAAgB,EAAE;QAChB,gBAAgB;KACjB;IACD,OAAO,EAAE;QACP,WAAW;KACZ;IACD,aAAa,EAAE;QACb,WAAW;KACZ;IACD,QAAQ,EAAE;QACR,cAAc;KACf;IACD,OAAO,EAAE;QACP,WAAW;KACZ;IACD,WAAW,EAAE;QACX,cAAc;KACf;IACD,oBAAoB,EAAE;QACpB,WAAW;KACZ;IACD,kBAAkB,EAAE;QAClB,gBAAgB;KACjB;IACD,oBAAoB,EAAE;QACpB,gBAAgB;KACjB;IACD,cAAc,EAAE;QACd,mBAAmB;KACpB;IACD,QAAQ,EAAE;QACR,YAAY;KACb;IACD,IAAI,EAAE;QACJ,YAAY;KACb;IACD,OAAO,EAAE;QACP,WAAW;KACZ;IACD,eAAe,EAAE;QACf,WAAW;KACZ;IACD,cAAc,EAAE;QACd,gBAAgB;KACjB;IACD,gBAAgB,EAAE;QAChB,gBAAgB;KACjB;IACD,YAAY,EAAE;QACZ,cAAc;KACf;IACD,YAAY,EAAE;QACZ,SAAS;KACV;IACD,aAAa,EAAE;QACb,kBAAkB;KACnB;IACD,MAAM,EAAE;QACN,YAAY;KACb;IACD,gBAAgB,EAAE;QAChB,qBAAqB;KACtB;IACD,uBAAuB,EAAE;QACvB,WAAW;KACZ;IACD,gBAAgB,EAAE;QAChB,WAAW;KACZ;IACD,eAAe,EAAE;QACf,WAAW;KACZ;IACD,WAAW,EAAE;QACX,gBAAgB;QAChB,SAAS;KACV;IACD,gBAAgB,EAAE;QAChB,gBAAgB;KACjB;IACD,QAAQ,EAAE;QACR,aAAa;QACb,SAAS;KACV;IACD,oBAAoB,EAAE;QACpB,iBAAiB;KAClB;IACD,cAAc,EAAE;QACd,kBAAkB;KACnB;IACD,aAAa,EAAE;QACb,YAAY;KACb;IACD,UAAU,EAAE;QACV,cAAc;QACd,cAAc;KACf;IACD,aAAa,EAAE;QACb,kBAAkB;QAClB,SAAS;KACV;IACD,kBAAkB,EAAE;QAClB,iBAAiB;KAClB;IACD,cAAc,EAAE;QACd,YAAY;KACb;IACD,gBAAgB,EAAE;QAChB,gBAAgB;KACjB;IACD,gBAAgB,EAAE;QAChB,gBAAgB;KACjB;IACD,QAAQ,EAAE;QACR,SAAS;KACV;IACD,OAAO,EAAE;QACP,WAAW;KACZ;IACD,aAAa,EAAE;QACb,iBAAiB;KAClB;IACD,aAAa,EAAE;QACb,gBAAgB;KACjB;IACD,cAAc,EAAE;QACd,gBAAgB;KACjB;IACD,QAAQ,EAAE;QACR,YAAY;KACb;IACD,eAAe,EAAE;QACf,oBAAoB;KACrB;IACD,MAAM,EAAE;QACN,WAAW;KACZ;IACD,SAAS,EAAE;QACT,WAAW;KACZ;IACD,UAAU,EAAE;QACV,SAAS;KACV;IACD,KAAK,EAAE;QACL,aAAa;KACd;IACD,UAAU,EAAE;QACV,aAAa;KACd;IACD,MAAM,EAAE;QACN,UAAU;KACX;IACD,cAAc,EAAE;QACd,mBAAmB;KACpB;IACD,oBAAoB,EAAE;QACpB,sBAAsB;KACvB;IACD,aAAa,EAAE;QACb,iBAAiB;KAClB;IACD,YAAY,EAAE;QACZ,iBAAiB;KAClB;IACD,MAAM,EAAE;QACN,YAAY;KACb;IACD,gBAAgB,EAAE;QAChB,eAAe;KAChB;IACD,YAAY,EAAE;QACZ,SAAS;KACV;IACD,YAAY,EAAE;QACZ,WAAW;KACZ;IACD,cAAc,EAAE;QACd,mBAAmB;KACpB;IACD,WAAW,EAAE;QACX,SAAS;KACV;IACD,YAAY,EAAE;QACZ,gBAAgB;KACjB;IACD,OAAO,EAAE;QACP,UAAU;KACX;IACD,gBAAgB,EAAE;QAChB,aAAa;KACd;IACD,MAAM,EAAE;QACN,SAAS;KACV;IACD,kBAAkB,EAAE;QAClB,sBAAsB;KACvB;IACD,cAAc,EAAE;QACd,WAAW;KACZ;IACD,KAAK,EAAE;QACL,YAAY;KACb;IACD,YAAY,EAAE;QACZ,iBAAiB;KAClB;IACD,gBAAgB,EAAE;QAChB,mBAAmB;KACpB;IACD,OAAO,EAAE;QACP,WAAW;KACZ;IACD,SAAS,EAAE;QACT,cAAc;KACf;IACD,QAAQ,EAAE;QACR,YAAY;KACb;IACD,OAAO,EAAE;QACP,YAAY;KACb;IACD,MAAM,EAAE;QACN,UAAU;QACV,SAAS;KACV;IACD,kBAAkB,EAAE;QAClB,YAAY;KACb;IACD,SAAS,EAAE;QACT,SAAS;KACV;IACD,OAAO,EAAE;QACP,YAAY;KACb;IACD,WAAW,EAAE;QACX,iBAAiB;KAClB;IACD,QAAQ,EAAE;QACR,YAAY;KACb;IACD,KAAK,EAAE;QACL,UAAU;KACX;IACD,SAAS,EAAE;QACT,WAAW;KACZ;IACD,cAAc,EAAE;QACd,WAAW;KACZ;IACD,UAAU,EAAE;QACV,eAAe;KAChB;IACD,UAAU,EAAE;QACV,eAAe;KAChB;IACD,KAAK,EAAE;QACL,SAAS;QACT,cAAc;KACf;IACD,eAAe,EAAE;QACf,oBAAoB;KACrB;IACD,OAAO,EAAE;QACP,UAAU;KACX;IACD,YAAY,EAAE;QACZ,iBAAiB;KAClB;IACD,MAAM,EAAE;QACN,aAAa;KACd;IACD,KAAK,EAAE;QACL,WAAW;KACZ;IACD,mBAAmB,EAAE;QACnB,sBAAsB;KACvB;IACD,QAAQ,EAAE;QACR,cAAc;KACf;IACD,IAAI,EAAE;QACJ,cAAc;KACf;IACD,GAAG,EAAE;QACH,WAAW;KACZ;IACD,SAAS,EAAE;QACT,cAAc;KACf;IACD,aAAa,EAAE;QACb,kBAAkB;KACnB;IACD,QAAQ,EAAE;QACR,aAAa;KACd;IACD,IAAI,EAAE;QACJ,UAAU;KACX;IACD,QAAQ,EAAE;QACR,SAAS;KACV;IACD,SAAS,EAAE;QACT,SAAS;KACV;IACD,UAAU,EAAE;QACV,gBAAgB;KACjB;IACD,cAAc,EAAE;QACd,sBAAsB;KACvB;IACD,WAAW,EAAE;QACX,gBAAgB;KACjB;IACD,QAAQ,EAAE;QACR,WAAW;KACZ;IACD,UAAU,EAAE;QACV,eAAe;KAChB;IACD,KAAK,EAAE;QACL,SAAS;KACV;IACD,aAAa,EAAE;QACb,SAAS;KACV;IACD,oBAAoB,EAAE;QACpB,mBAAmB;KACpB;IACD,WAAW,EAAE;QACX,gBAAgB;KACjB;IACD,OAAO,EAAE;QACP,YAAY;KACb;IACD,GAAG,EAAE;QACH,OAAO;KACR;IACD,MAAM,EAAE;QACN,WAAW;KACZ;IACD,IAAI,EAAE;QACJ,QAAQ;KACT;IACD,YAAY,EAAE;QACZ,iBAAiB;KAClB;IACD,YAAY,EAAE;QACZ,iBAAiB;KAClB;IACD,IAAI,EAAE;QACJ,QAAQ;KACT;IACD,eAAe,EAAE;QACf,WAAW;KACZ;IACD,UAAU,EAAE;QACV,eAAe;QACf,WAAW;KACZ;IACD,WAAW,EAAE;QACX,gBAAgB;KACjB;IACD,cAAc,EAAE;QACd,UAAU;KACX;IACD,SAAS,EAAE;QACT,cAAc;KACf;IACD,SAAS,EAAE;QACT,aAAa;KACd;CACoE,CAAC","sourcesContent":["// Generated by scripts/sync-public-component-map.mjs --write. Do not edit by hand.\n// Public value exports per symbol, canonical granular entry first (the root entry is omitted).\nexport const publicExportEntries = {\n Accordion: [\n \"./display\"\n ],\n AccountSwitcher: [\n \"./task-controls\"\n ],\n ActivityChip: [\n \"./activity-chip\",\n \"./feedback\"\n ],\n ActivityHeatmap: [\n \"./activity-heatmap\"\n ],\n Affix: [\n \"./affix\"\n ],\n Agreement: [\n \"./agreement\"\n ],\n AlertDialog: [\n \"./overlays\"\n ],\n AlertDialogQueueProvider: [\n \"./alert-dialog-queue\"\n ],\n Anchor: [\n \"./anchor\"\n ],\n AnimatedStatistic: [\n \"./statistic-motion\"\n ],\n AspectRatio: [\n \"./layout\"\n ],\n Asset: [\n \"./asset\"\n ],\n AssetGroup: [\n \"./asset\"\n ],\n AuthProviderButton: [\n \"./provider-button\"\n ],\n AuthScreenFooter: [\n \"./auth-screen\"\n ],\n AuthScreenHero: [\n \"./auth-screen\"\n ],\n AuthScreenLayout: [\n \"./auth-screen\"\n ],\n Avatar: [\n \"./display\"\n ],\n AvatarGroup: [\n \"./display\"\n ],\n Badge: [\n \"./display\"\n ],\n BarChart: [\n \"./chart\"\n ],\n BezierEditor: [\n \"./authoring-tools\"\n ],\n BottomCTA: [\n \"./bottom-cta\"\n ],\n BottomInfo: [\n \"./bottom-info\"\n ],\n BottomNavigation: [\n \"./navigation\"\n ],\n BottomNavigationInsetProvider: [\n \"./navigation\"\n ],\n Breadcrumb: [\n \"./breadcrumb\",\n \"./navigation\"\n ],\n Button: [\n \"./actions\"\n ],\n ButtonLink: [\n \"./actions\"\n ],\n Calendar: [\n \"./calendar\"\n ],\n Card: [\n \"./display\"\n ],\n Carousel: [\n \"./carousel\"\n ],\n CarouselMotion: [\n \"./carousel-motion\"\n ],\n Celebration: [\n \"./celebration\"\n ],\n ChartLegend: [\n \"./chart\"\n ],\n ChatDateSeparator: [\n \"./screens\"\n ],\n ChatMessage: [\n \"./screens\"\n ],\n ChatRoomActions: [\n \"./communication\"\n ],\n ChatRoomCreate: [\n \"./communication\"\n ],\n ChatRoomDetails: [\n \"./communication\"\n ],\n ChatRoomInvite: [\n \"./communication\"\n ],\n ChatRoomMembers: [\n \"./communication\"\n ],\n ChatRoomProfile: [\n \"./communication\"\n ],\n ChatScreen: [\n \"./screens\"\n ],\n Checkbox: [\n \"./selection\"\n ],\n CheckboxGroup: [\n \"./selection\"\n ],\n Chip: [\n \"./selection\"\n ],\n ChoiceRow: [\n \"./choice-row\"\n ],\n ClipboardButton: [\n \"./clipboard\"\n ],\n ClipboardIconButton: [\n \"./clipboard\"\n ],\n CodeBlock: [\n \"./code-block\"\n ],\n CohortRetentionTable: [\n \"./data-workflows\"\n ],\n Collapsible: [\n \"./collapsible\"\n ],\n CollapsibleMarker: [\n \"./collapsible\"\n ],\n CollectionRail: [\n \"./collection-rail\"\n ],\n ColorPicker: [\n \"./color-picker\"\n ],\n ColorSwatchPicker: [\n \"./color-picker\"\n ],\n Combobox: [\n \"./forms\"\n ],\n CommandPalette: [\n \"./command-palette\"\n ],\n CommentThreadRow: [\n \"./screen-flows\"\n ],\n CommentThreadScreen: [\n \"./screen-flows\"\n ],\n ComparisonTable: [\n \"./data-table\"\n ],\n CompositionLayout: [\n \"./screens\"\n ],\n Container: [\n \"./layout\"\n ],\n ContentTransition: [\n \"./content-transition\"\n ],\n ContextMenu: [\n \"./context-menu\"\n ],\n ConversationListScreen: [\n \"./screens\"\n ],\n ConversationRow: [\n \"./conversation-row\"\n ],\n ConversionFunnel: [\n \"./data-workflows\"\n ],\n CorrelationMatrix: [\n \"./data-workflows\"\n ],\n CounterBadge: [\n \"./display\"\n ],\n DataTable: [\n \"./data-table\"\n ],\n DateEntry: [\n \"./date-entry\"\n ],\n DatePicker: [\n \"./date-picker\",\n \"./forms\"\n ],\n DateRangePicker: [\n \"./date-range\"\n ],\n DescriptionList: [\n \"./display\"\n ],\n Dialog: [\n \"./overlays\"\n ],\n Divider: [\n \"./display\"\n ],\n DocumentResource: [\n \"./document-resource\"\n ],\n DurationField: [\n \"./duration-field\"\n ],\n EditorScreen: [\n \"./screen-flows\"\n ],\n EffectSurface: [\n \"./effect-surface\"\n ],\n EmptyState: [\n \"./feedback\"\n ],\n EventAttendanceCard: [\n \"./social-compositions\"\n ],\n ExpandableSearch: [\n \"./communication\"\n ],\n Field: [\n \"./forms\"\n ],\n FieldGroup: [\n \"./field-group\"\n ],\n FilePicker: [\n \"./file-picker\",\n \"./forms\"\n ],\n FilterRecovery: [\n \"./collection-editing\"\n ],\n FloatingActionButton: [\n \"./floating-action-button\"\n ],\n FolderPreview: [\n \"./folder-preview\"\n ],\n FollowListScreen: [\n \"./follow-list\"\n ],\n FollowProfileCard: [\n \"./social-compositions\"\n ],\n Form: [\n \"./forms\"\n ],\n GravityLetters: [\n \"./gravity-letters\"\n ],\n Grid: [\n \"./layout\"\n ],\n GridReveal: [\n \"./grid-reveal\"\n ],\n Heading: [\n \"./heading\"\n ],\n HistogramExplorer: [\n \"./data-workflows\"\n ],\n HjmProvider: [\n \"./provider\"\n ],\n Icon: [\n \"./display\"\n ],\n IconButton: [\n \"./actions\"\n ],\n IconButtonLink: [\n \"./actions\"\n ],\n IconTile: [\n \"./screens\"\n ],\n Image: [\n \"./display\"\n ],\n ImageChoiceGroup: [\n \"./image-choice\"\n ],\n ImageComparison: [\n \"./image-comparison\"\n ],\n ImageViewer: [\n \"./image-viewer\"\n ],\n ImageViewerTrigger: [\n \"./image-viewer\"\n ],\n ImmersiveOverlay: [\n \"./overlays\"\n ],\n ImportFieldMapping: [\n \"./data-workflows\"\n ],\n InlineConfirm: [\n \"./inline-confirm\"\n ],\n InlineEdit: [\n \"./collection-editing\"\n ],\n Layout: [\n \"./layout\"\n ],\n LineChart: [\n \"./chart\"\n ],\n LineScore: [\n \"./data-table\"\n ],\n Link: [\n \"./actions\"\n ],\n List: [\n \"./display\"\n ],\n ListDetailScreen: [\n \"./screen-flows\"\n ],\n ListRow: [\n \"./display\"\n ],\n ListSeparator: [\n \"./display\"\n ],\n LoadMore: [\n \"./navigation\"\n ],\n Masonry: [\n \"./masonry\"\n ],\n MatrixTable: [\n \"./data-table\"\n ],\n MediaAlbumPageStatus: [\n \"./screens\"\n ],\n MediaSelectionCell: [\n \"./screen-flows\"\n ],\n MediaSelectionScreen: [\n \"./screen-flows\"\n ],\n MediaTransport: [\n \"./media-transport\"\n ],\n Mentions: [\n \"./mentions\"\n ],\n Menu: [\n \"./overlays\"\n ],\n Menubar: [\n \"./menubar\"\n ],\n MessageComposer: [\n \"./screens\"\n ],\n ModerationForm: [\n \"./screen-flows\"\n ],\n ModerationScreen: [\n \"./screen-flows\"\n ],\n MorphingMenu: [\n \"./menu-morph\"\n ],\n NativeSelect: [\n \"./forms\"\n ],\n NavigationBar: [\n \"./navigation-bar\"\n ],\n Notice: [\n \"./feedback\"\n ],\n NotificationBell: [\n \"./notification-bell\"\n ],\n NotificationInboxScreen: [\n \"./screens\"\n ],\n NotificationItem: [\n \"./screens\"\n ],\n NotificationRow: [\n \"./screens\"\n ],\n NumberField: [\n \"./number-field\",\n \"./forms\"\n ],\n OnboardingScreen: [\n \"./screen-flows\"\n ],\n OtpField: [\n \"./otp-field\",\n \"./forms\"\n ],\n OverlayStackProvider: [\n \"./overlay-stack\"\n ],\n OverviewScreen: [\n \"./design-profile\"\n ],\n PageIndicator: [\n \"./carousel\"\n ],\n Pagination: [\n \"./pagination\",\n \"./navigation\"\n ],\n PasswordField: [\n \"./password-field\",\n \"./forms\"\n ],\n PasswordRulesField: [\n \"./task-controls\"\n ],\n PendingContent: [\n \"./feedback\"\n ],\n PermissionScreen: [\n \"./screen-flows\"\n ],\n PhotoSourceSheet: [\n \"./screen-flows\"\n ],\n PieChart: [\n \"./chart\"\n ],\n Popover: [\n \"./popover\"\n ],\n PricingChoice: [\n \"./task-controls\"\n ],\n ProfileScreen: [\n \"./screen-flows\"\n ],\n ProfileSummary: [\n \"./screen-flows\"\n ],\n Progress: [\n \"./feedback\"\n ],\n ProgressiveBlur: [\n \"./progressive-blur\"\n ],\n QRCode: [\n \"./qr-code\"\n ],\n QuoteCard: [\n \"./display\"\n ],\n RadarChart: [\n \"./chart\"\n ],\n Radio: [\n \"./selection\"\n ],\n RadioGroup: [\n \"./selection\"\n ],\n Rating: [\n \"./rating\"\n ],\n ReactionPicker: [\n \"./reaction-picker\"\n ],\n RepeatableFieldGroup: [\n \"./collection-editing\"\n ],\n ReplyComposer: [\n \"./communication\"\n ],\n ReplyMessage: [\n \"./communication\"\n ],\n Result: [\n \"./feedback\"\n ],\n SavedItemsScreen: [\n \"./saved-items\"\n ],\n ScatterChart: [\n \"./chart\"\n ],\n ScreenLayout: [\n \"./screens\"\n ],\n ScrollProgress: [\n \"./scroll-progress\"\n ],\n SearchField: [\n \"./forms\"\n ],\n SearchScreen: [\n \"./screen-flows\"\n ],\n Section: [\n \"./layout\"\n ],\n SegmentedControl: [\n \"./selection\"\n ],\n Select: [\n \"./forms\"\n ],\n SelectionActionBar: [\n \"./collection-editing\"\n ],\n SettingsScreen: [\n \"./screens\"\n ],\n Sheet: [\n \"./overlays\"\n ],\n ShortcutRail: [\n \"./shortcut-rail\"\n ],\n ShortcutRecorder: [\n \"./authoring-tools\"\n ],\n Sidebar: [\n \"./sidebar\"\n ],\n SidePanel: [\n \"./side-panel\"\n ],\n Skeleton: [\n \"./feedback\"\n ],\n SkipNav: [\n \"./skip-nav\"\n ],\n Slider: [\n \"./slider\",\n \"./forms\"\n ],\n SortableCollection: [\n \"./sortable\"\n ],\n Sparkline: [\n \"./chart\"\n ],\n Spinner: [\n \"./feedback\"\n ],\n SplitAction: [\n \"./task-controls\"\n ],\n Splitter: [\n \"./splitter\"\n ],\n Stack: [\n \"./layout\"\n ],\n Statistic: [\n \"./display\"\n ],\n StatisticGroup: [\n \"./display\"\n ],\n StatusText: [\n \"./status-text\"\n ],\n StepPlayer: [\n \"./step-player\"\n ],\n Steps: [\n \"./steps\",\n \"./navigation\"\n ],\n StreamingAnswer: [\n \"./streaming-answer\"\n ],\n Surface: [\n \"./layout\"\n ],\n SwipeActions: [\n \"./swipe-actions\"\n ],\n Switch: [\n \"./selection\"\n ],\n Table: [\n \"./display\"\n ],\n TableColumnSettings: [\n \"./collection-editing\"\n ],\n TabPanel: [\n \"./navigation\"\n ],\n Tabs: [\n \"./navigation\"\n ],\n Tag: [\n \"./display\"\n ],\n TagsInput: [\n \"./tags-input\"\n ],\n TargetSummary: [\n \"./data-workflows\"\n ],\n TaskList: [\n \"./task-list\"\n ],\n Text: [\n \"./layout\"\n ],\n TextArea: [\n \"./forms\"\n ],\n TextField: [\n \"./forms\"\n ],\n TextFormat: [\n \"./text-formats\"\n ],\n TextTransition: [\n \"./content-transition\"\n ],\n ThinkingOrb: [\n \"./thinking-orb\"\n ],\n Timeline: [\n \"./display\"\n ],\n TimePicker: [\n \"./time-picker\"\n ],\n Toast: [\n \"./toast\"\n ],\n ToastProvider: [\n \"./toast\"\n ],\n ToggleFeedbackButton: [\n \"./toggle-feedback\"\n ],\n ToggleGroup: [\n \"./toggle-group\"\n ],\n Tooltip: [\n \"./overlays\"\n ],\n Top: [\n \"./top\"\n ],\n TopBar: [\n \"./top-bar\"\n ],\n Tour: [\n \"./tour\"\n ],\n TransferList: [\n \"./transfer-list\"\n ],\n TransferTask: [\n \"./transfer-task\"\n ],\n Tree: [\n \"./tree\"\n ],\n TypingIndicator: [\n \"./screens\"\n ],\n UploadItem: [\n \"./upload-item\",\n \"./display\"\n ],\n VirtualList: [\n \"./virtual-list\"\n ],\n VisuallyHidden: [\n \"./layout\"\n ],\n VoiceNote: [\n \"./voice-note\"\n ],\n Watermark: [\n \"./watermark\"\n ]\n} as const satisfies Readonly<Record<string, readonly `./${string}`[]>>;\n"]}
1
+ {"version":3,"file":"public-exports.generated.js","sourceRoot":"","sources":["../src/public-exports.generated.ts"],"names":[],"mappings":"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","sourcesContent":["// Generated by scripts/sync-public-component-map.mjs --write. Do not edit by hand.\n// Public value exports per symbol, canonical granular entry first (the root entry is omitted).\nexport const publicExportEntries = {\n Accordion: [\n \"./display\"\n ],\n AccountSwitcher: [\n \"./task-controls\"\n ],\n ActivityChip: [\n \"./activity-chip\",\n \"./feedback\"\n ],\n ActivityHeatmap: [\n \"./activity-heatmap\"\n ],\n Affix: [\n \"./affix\"\n ],\n Agreement: [\n \"./agreement\"\n ],\n AlertDialog: [\n \"./overlays\"\n ],\n AlertDialogQueueProvider: [\n \"./alert-dialog-queue\"\n ],\n Anchor: [\n \"./anchor\"\n ],\n AnimatedStatistic: [\n \"./statistic-motion\"\n ],\n AspectRatio: [\n \"./layout\"\n ],\n Asset: [\n \"./asset\"\n ],\n AssetGroup: [\n \"./asset\"\n ],\n AuthProviderButton: [\n \"./provider-button\"\n ],\n AuthScreenFooter: [\n \"./auth-screen\"\n ],\n AuthScreenHero: [\n \"./auth-screen\"\n ],\n AuthScreenLayout: [\n \"./auth-screen\"\n ],\n Avatar: [\n \"./display\"\n ],\n AvatarGroup: [\n \"./display\"\n ],\n Badge: [\n \"./display\"\n ],\n BarChart: [\n \"./chart\"\n ],\n BezierEditor: [\n \"./authoring-tools\"\n ],\n BottomCTA: [\n \"./bottom-cta\"\n ],\n BottomInfo: [\n \"./bottom-info\"\n ],\n BottomNavigation: [\n \"./navigation\"\n ],\n BottomNavigationInsetProvider: [\n \"./navigation\"\n ],\n Breadcrumb: [\n \"./breadcrumb\",\n \"./navigation\"\n ],\n Button: [\n \"./actions\"\n ],\n ButtonLink: [\n \"./actions\"\n ],\n Calendar: [\n \"./calendar\"\n ],\n Card: [\n \"./display\"\n ],\n Carousel: [\n \"./carousel\"\n ],\n CarouselMotion: [\n \"./carousel-motion\"\n ],\n Celebration: [\n \"./celebration\"\n ],\n ChartLegend: [\n \"./chart\"\n ],\n ChatDateSeparator: [\n \"./screens\"\n ],\n ChatMessage: [\n \"./screens\"\n ],\n ChatRoomActions: [\n \"./communication\"\n ],\n ChatRoomCreate: [\n \"./communication\"\n ],\n ChatRoomDetails: [\n \"./communication\"\n ],\n ChatRoomInvite: [\n \"./communication\"\n ],\n ChatRoomMembers: [\n \"./communication\"\n ],\n ChatRoomProfile: [\n \"./communication\"\n ],\n ChatScreen: [\n \"./screens\"\n ],\n Checkbox: [\n \"./selection\"\n ],\n CheckboxGroup: [\n \"./selection\"\n ],\n Chip: [\n \"./selection\"\n ],\n ChoiceRow: [\n \"./choice-row\"\n ],\n ClipboardButton: [\n \"./clipboard\"\n ],\n ClipboardIconButton: [\n \"./clipboard\"\n ],\n CodeBlock: [\n \"./code-block\"\n ],\n CohortRetentionTable: [\n \"./data-workflows\"\n ],\n Collapsible: [\n \"./collapsible\"\n ],\n CollapsibleMarker: [\n \"./collapsible\"\n ],\n CollectionRail: [\n \"./collection-rail\"\n ],\n ColorPicker: [\n \"./color-picker\"\n ],\n ColorSwatchPicker: [\n \"./color-picker\"\n ],\n Combobox: [\n \"./forms\"\n ],\n CommandPalette: [\n \"./command-palette\"\n ],\n CommentThreadRow: [\n \"./screen-flows\"\n ],\n CommentThreadScreen: [\n \"./screen-flows\"\n ],\n ComparisonTable: [\n \"./data-table\"\n ],\n CompositionLayout: [\n \"./screens\"\n ],\n Container: [\n \"./layout\"\n ],\n ContentTransition: [\n \"./content-transition\"\n ],\n ContextMenu: [\n \"./context-menu\"\n ],\n ConversationListScreen: [\n \"./screens\"\n ],\n ConversationRow: [\n \"./conversation-row\"\n ],\n ConversionFunnel: [\n \"./data-workflows\"\n ],\n CorrelationMatrix: [\n \"./data-workflows\"\n ],\n CounterBadge: [\n \"./display\"\n ],\n DataTable: [\n \"./data-table\"\n ],\n DateEntry: [\n \"./date-entry\"\n ],\n DatePicker: [\n \"./date-picker\",\n \"./forms\"\n ],\n DateRangePicker: [\n \"./date-range\"\n ],\n DescriptionList: [\n \"./display\"\n ],\n Dialog: [\n \"./overlays\"\n ],\n Divider: [\n \"./display\"\n ],\n DocumentResource: [\n \"./document-resource\"\n ],\n DrawingEditor: [\n \"./drawing-editor\"\n ],\n DurationField: [\n \"./duration-field\"\n ],\n EditorScreen: [\n \"./screen-flows\"\n ],\n EffectSurface: [\n \"./effect-surface\"\n ],\n EmptyState: [\n \"./feedback\"\n ],\n EventAttendanceCard: [\n \"./social-compositions\"\n ],\n ExpandableSearch: [\n \"./communication\"\n ],\n Field: [\n \"./forms\"\n ],\n FieldGroup: [\n \"./field-group\"\n ],\n FilePicker: [\n \"./file-picker\",\n \"./forms\"\n ],\n FilterRecovery: [\n \"./collection-editing\"\n ],\n FloatingActionButton: [\n \"./floating-action-button\"\n ],\n FolderPreview: [\n \"./folder-preview\"\n ],\n FollowListScreen: [\n \"./follow-list\"\n ],\n FollowProfileCard: [\n \"./social-compositions\"\n ],\n Form: [\n \"./forms\"\n ],\n GravityLetters: [\n \"./gravity-letters\"\n ],\n Grid: [\n \"./layout\"\n ],\n GridReveal: [\n \"./grid-reveal\"\n ],\n Heading: [\n \"./heading\"\n ],\n HistogramExplorer: [\n \"./data-workflows\"\n ],\n HjmProvider: [\n \"./provider\"\n ],\n Icon: [\n \"./display\"\n ],\n IconButton: [\n \"./actions\"\n ],\n IconButtonLink: [\n \"./actions\"\n ],\n IconTile: [\n \"./screens\"\n ],\n Image: [\n \"./display\"\n ],\n ImageChoiceGroup: [\n \"./image-choice\"\n ],\n ImageComparison: [\n \"./image-comparison\"\n ],\n ImageViewer: [\n \"./image-viewer\"\n ],\n ImageViewerTrigger: [\n \"./image-viewer\"\n ],\n ImmersiveOverlay: [\n \"./overlays\"\n ],\n ImportFieldMapping: [\n \"./data-workflows\"\n ],\n InlineConfirm: [\n \"./inline-confirm\"\n ],\n InlineEdit: [\n \"./collection-editing\"\n ],\n Layout: [\n \"./layout\"\n ],\n LineChart: [\n \"./chart\"\n ],\n LineScore: [\n \"./data-table\"\n ],\n Link: [\n \"./actions\"\n ],\n List: [\n \"./display\"\n ],\n ListDetailScreen: [\n \"./screen-flows\"\n ],\n ListRow: [\n \"./display\"\n ],\n ListSeparator: [\n \"./display\"\n ],\n LoadMore: [\n \"./navigation\"\n ],\n Masonry: [\n \"./masonry\"\n ],\n MatrixTable: [\n \"./data-table\"\n ],\n MediaAlbumPageStatus: [\n \"./screens\"\n ],\n MediaSelectionCell: [\n \"./screen-flows\"\n ],\n MediaSelectionScreen: [\n \"./screen-flows\"\n ],\n MediaTransport: [\n \"./media-transport\"\n ],\n Mentions: [\n \"./mentions\"\n ],\n Menu: [\n \"./overlays\"\n ],\n Menubar: [\n \"./menubar\"\n ],\n MessageComposer: [\n \"./screens\"\n ],\n ModerationForm: [\n \"./screen-flows\"\n ],\n ModerationScreen: [\n \"./screen-flows\"\n ],\n MorphingMenu: [\n \"./menu-morph\"\n ],\n NativeSelect: [\n \"./forms\"\n ],\n NavigationBar: [\n \"./navigation-bar\"\n ],\n Notice: [\n \"./feedback\"\n ],\n NotificationBell: [\n \"./notification-bell\"\n ],\n NotificationInboxScreen: [\n \"./screens\"\n ],\n NotificationItem: [\n \"./screens\"\n ],\n NotificationRow: [\n \"./screens\"\n ],\n NumberField: [\n \"./number-field\",\n \"./forms\"\n ],\n OnboardingScreen: [\n \"./screen-flows\"\n ],\n OtpField: [\n \"./otp-field\",\n \"./forms\"\n ],\n OverlayStackProvider: [\n \"./overlay-stack\"\n ],\n OverviewScreen: [\n \"./design-profile\"\n ],\n PageIndicator: [\n \"./carousel\"\n ],\n Pagination: [\n \"./pagination\",\n \"./navigation\"\n ],\n PasswordField: [\n \"./password-field\",\n \"./forms\"\n ],\n PasswordRulesField: [\n \"./task-controls\"\n ],\n PendingContent: [\n \"./feedback\"\n ],\n PermissionScreen: [\n \"./screen-flows\"\n ],\n PhotoSourceSheet: [\n \"./screen-flows\"\n ],\n PieChart: [\n \"./chart\"\n ],\n Popover: [\n \"./popover\"\n ],\n PricingChoice: [\n \"./task-controls\"\n ],\n ProfileScreen: [\n \"./screen-flows\"\n ],\n ProfileSummary: [\n \"./screen-flows\"\n ],\n Progress: [\n \"./feedback\"\n ],\n ProgressiveBlur: [\n \"./progressive-blur\"\n ],\n QRCode: [\n \"./qr-code\"\n ],\n QuoteCard: [\n \"./display\"\n ],\n RadarChart: [\n \"./chart\"\n ],\n Radio: [\n \"./selection\"\n ],\n RadioGroup: [\n \"./selection\"\n ],\n Rating: [\n \"./rating\"\n ],\n ReactionPicker: [\n \"./reaction-picker\"\n ],\n RepeatableFieldGroup: [\n \"./collection-editing\"\n ],\n ReplyComposer: [\n \"./communication\"\n ],\n ReplyMessage: [\n \"./communication\"\n ],\n Result: [\n \"./feedback\"\n ],\n SavedItemsScreen: [\n \"./saved-items\"\n ],\n ScatterChart: [\n \"./chart\"\n ],\n ScreenLayout: [\n \"./screens\"\n ],\n ScrollProgress: [\n \"./scroll-progress\"\n ],\n SearchField: [\n \"./forms\"\n ],\n SearchScreen: [\n \"./screen-flows\"\n ],\n Section: [\n \"./layout\"\n ],\n SegmentedControl: [\n \"./selection\"\n ],\n Select: [\n \"./forms\"\n ],\n SelectionActionBar: [\n \"./collection-editing\"\n ],\n SettingsScreen: [\n \"./screens\"\n ],\n ShareSheet: [\n \"./share-sheet\"\n ],\n Sheet: [\n \"./overlays\"\n ],\n ShortcutRail: [\n \"./shortcut-rail\"\n ],\n ShortcutRecorder: [\n \"./authoring-tools\"\n ],\n Sidebar: [\n \"./sidebar\"\n ],\n SidePanel: [\n \"./side-panel\"\n ],\n Skeleton: [\n \"./feedback\"\n ],\n SkipNav: [\n \"./skip-nav\"\n ],\n Slider: [\n \"./slider\",\n \"./forms\"\n ],\n SortableCollection: [\n \"./sortable\"\n ],\n Sparkline: [\n \"./chart\"\n ],\n Spinner: [\n \"./feedback\"\n ],\n SplitAction: [\n \"./task-controls\"\n ],\n Splitter: [\n \"./splitter\"\n ],\n Stack: [\n \"./layout\"\n ],\n Statistic: [\n \"./display\"\n ],\n StatisticGroup: [\n \"./display\"\n ],\n StatusText: [\n \"./status-text\"\n ],\n StepPlayer: [\n \"./step-player\"\n ],\n Steps: [\n \"./steps\",\n \"./navigation\"\n ],\n StreamingAnswer: [\n \"./streaming-answer\"\n ],\n Surface: [\n \"./layout\"\n ],\n SwipeActions: [\n \"./swipe-actions\"\n ],\n Switch: [\n \"./selection\"\n ],\n Table: [\n \"./display\"\n ],\n TableColumnSettings: [\n \"./collection-editing\"\n ],\n TabPanel: [\n \"./navigation\"\n ],\n Tabs: [\n \"./navigation\"\n ],\n Tag: [\n \"./display\"\n ],\n TagsInput: [\n \"./tags-input\"\n ],\n TargetSummary: [\n \"./data-workflows\"\n ],\n TaskList: [\n \"./task-list\"\n ],\n Text: [\n \"./layout\"\n ],\n TextArea: [\n \"./forms\"\n ],\n TextField: [\n \"./forms\"\n ],\n TextFormat: [\n \"./text-formats\"\n ],\n TextTransition: [\n \"./content-transition\"\n ],\n ThinkingOrb: [\n \"./thinking-orb\"\n ],\n Timeline: [\n \"./display\"\n ],\n TimePicker: [\n \"./time-picker\"\n ],\n Toast: [\n \"./toast\"\n ],\n ToastProvider: [\n \"./toast\"\n ],\n ToggleFeedbackButton: [\n \"./toggle-feedback\"\n ],\n ToggleGroup: [\n \"./toggle-group\"\n ],\n Tooltip: [\n \"./overlays\"\n ],\n Top: [\n \"./top\"\n ],\n TopBar: [\n \"./top-bar\"\n ],\n Tour: [\n \"./tour\"\n ],\n TransferList: [\n \"./transfer-list\"\n ],\n TransferTask: [\n \"./transfer-task\"\n ],\n Tree: [\n \"./tree\"\n ],\n TypingIndicator: [\n \"./screens\"\n ],\n UploadItem: [\n \"./upload-item\",\n \"./display\"\n ],\n VirtualList: [\n \"./virtual-list\"\n ],\n VisuallyHidden: [\n \"./layout\"\n ],\n VoiceNote: [\n \"./voice-note\"\n ],\n Watermark: [\n \"./watermark\"\n ]\n} as const satisfies Readonly<Record<string, readonly `./${string}`[]>>;\n"]}
@@ -0,0 +1,65 @@
1
+ import { type ReactNode } from "react";
2
+ import type { SheetOpenChangeDetails } from "@hjmds/design-contracts/components/sheet";
3
+ import { type ShareSheetLabels, type ShareSheetRecipientDescriptor, type ShareSheetRecipientLabels, type ShareSheetRecipientStatus, type ShareSheetSendResult, type ShareSheetShareContent, type ShareSheetSystemShareOutcome } from "@hjmds/design-contracts/share-sheet";
4
+ export type { ShareSheetLabels, ShareSheetRecipientLabels, ShareSheetRecipientStatus, ShareSheetSendResult, ShareSheetShareContent, ShareSheetSystemShareOutcome, } from "@hjmds/design-contracts/share-sheet";
5
+ export type ShareSheetRecipient = ShareSheetRecipientDescriptor & Readonly<{
6
+ image: ReactNode;
7
+ }>;
8
+ export type ShareSheetRecipientSearch = Readonly<{
9
+ /** Controlled query. With `onQueryChange` the product owns the query and `items` is already its result. */
10
+ query?: string;
11
+ onQueryChange?: (query: string) => void;
12
+ /** A server search is running. */
13
+ searching?: boolean;
14
+ }>;
15
+ export type ShareSheetRecipients = Readonly<{
16
+ items: readonly ShareSheetRecipient[];
17
+ labels: ShareSheetRecipientLabels;
18
+ /** Default `ready`. */
19
+ status?: ShareSheetRecipientStatus;
20
+ /** Shown with the `error` state. */
21
+ onRetry?: () => void;
22
+ retrying?: boolean;
23
+ /** Omit to filter `items` by label here; pass `onQueryChange` to search on the server. */
24
+ search?: ShareSheetRecipientSearch;
25
+ /** Recipients that already received this link (before the sheet opened). They stay checked and locked. */
26
+ sentIds?: readonly string[];
27
+ /** Sends the link to the selected ids. Delivered ids lock as sent; the rest stay selected for a retry. */
28
+ onSend: (ids: readonly string[]) => Promise<ShareSheetSendResult>;
29
+ }>;
30
+ export type ShareSheetProps = Readonly<{
31
+ open: boolean;
32
+ onOpenChange: (open: boolean, detail: SheetOpenChangeDetails) => void;
33
+ title: string;
34
+ labels: ShareSheetLabels;
35
+ /** The URL that is copied and shared. */
36
+ link: string;
37
+ /** Title and text handed to the OS share sheet with the link. */
38
+ shareTitle?: string;
39
+ shareText?: string;
40
+ /** Writes the link to the clipboard. Default `navigator.clipboard.writeText`; `false` hides the action. */
41
+ copyLink?: ((link: string) => Promise<void>) | false;
42
+ /**
43
+ * Opens the OS share sheet. Default `navigator.share` (the action is hidden where the browser has none); `false`
44
+ * hides the action. Reject with an `AbortError` when the user backs out.
45
+ */
46
+ systemShare?: ((content: ShareSheetShareContent) => Promise<void>) | false;
47
+ onLinkCopied?: () => void;
48
+ /** The OS share sheet closed. `completed` is not a delivery receipt. */
49
+ onSystemShare?: (outcome: ShareSheetSystemShareOutcome) => void;
50
+ /** Product artwork for the two actions. Defaults to the HJM `copy` and `share` icons. */
51
+ icons?: Readonly<{
52
+ copyLink?: ReactNode;
53
+ systemShare?: ReactNode;
54
+ }>;
55
+ /** In-app recipients (group chats, followers). Omit for external sharing only. */
56
+ recipients?: ShareSheetRecipients;
57
+ /** Product feedback above the body, such as a reward earned by sending. */
58
+ notice?: ReactNode;
59
+ }>;
60
+ /**
61
+ * One Sheet for sharing a link (2026-10-26, generalized from BurnTok's share sheets): optional in-app recipients with a
62
+ * batch send, then copy link and the OS share sheet as two round actions in the footer.
63
+ */
64
+ export declare function ShareSheet({ open, onOpenChange, title, labels, link, shareTitle, shareText, copyLink, systemShare, onLinkCopied, onSystemShare, icons, recipients, notice, }: ShareSheetProps): import("react").JSX.Element;
65
+ //# sourceMappingURL=share-sheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-sheet.d.ts","sourceRoot":"","sources":["../src/share-sheet.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAEL,KAAK,gBAAgB,EAAE,KAAK,6BAA6B,EAAE,KAAK,yBAAyB,EAAE,KAAK,yBAAyB,EAAE,KAAK,oBAAoB,EACpJ,KAAK,sBAAsB,EAAE,KAAK,4BAA4B,EAC/D,MAAM,qCAAqC,CAAC;AAU7C,YAAY,EACV,gBAAgB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,4BAA4B,GACnJ,MAAM,qCAAqC,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG,6BAA6B,GAAG,QAAQ,CAAC;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAEjG,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC/C,2GAA2G;IAC3G,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACtC,MAAM,EAAE,yBAAyB,CAAC;IAClC,uBAAuB;IACvB,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,0GAA0G;IAC1G,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,0GAA0G;IAC1G,MAAM,EAAE,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACnE,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;IACzB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2GAA2G;IAC3G,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;IACrD;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;IAC3E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,wEAAwE;IACxE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,4BAA4B,KAAK,IAAI,CAAC;IAChE,yFAAyF;IACzF,KAAK,CAAC,EAAE,QAAQ,CAAC;QAAE,QAAQ,CAAC,EAAE,SAAS,CAAC;QAAC,WAAW,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IACpE,kFAAkF;IAClF,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,2EAA2E;IAC3E,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC,CAAC;AAaH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAC9I,EAAE,eAAe,+BAsIjB"}
@@ -0,0 +1,145 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useEffect, useRef, useState, useSyncExternalStore } from "react";
4
+ import { filterShareSheetRecipients, resolveShareSheetPickerValue, resolveShareSheetSendOutcome, shareSheetRecipe, validateShareSheet, validateShareSheetRecipients, } from "@hjmds/design-contracts/share-sheet";
5
+ import { Button, IconButton } from "./actions.js";
6
+ import { EmptyState, Notice } from "./feedback.js";
7
+ import { SearchField } from "./forms.js";
8
+ import { ImageChoiceGroup } from "./image-choice.js";
9
+ import { Spinner } from "./internal/spinner.js";
10
+ import { Stack, Text } from "./layout.js";
11
+ import { Sheet } from "./overlays.js";
12
+ import { Icon } from "./supplemental-display.js";
13
+ const subscribeNever = () => () => { };
14
+ const browserShareAvailable = () => typeof navigator !== "undefined" && typeof navigator.share === "function";
15
+ const serverShareAvailable = () => false;
16
+ function isAbort(error) {
17
+ return typeof error === "object" && error !== null && "name" in error && error.name === "AbortError";
18
+ }
19
+ /**
20
+ * One Sheet for sharing a link (2026-10-26, generalized from BurnTok's share sheets): optional in-app recipients with a
21
+ * batch send, then copy link and the OS share sheet as two round actions in the footer.
22
+ */
23
+ export function ShareSheet({ open, onOpenChange, title, labels, link, shareTitle, shareText, copyLink, systemShare, onLinkCopied, onSystemShare, icons, recipients, notice, }) {
24
+ validateShareSheet({ title, link, labels });
25
+ if (recipients)
26
+ validateShareSheetRecipients(recipients.items);
27
+ // navigator.share exists only in some browsers and never on the server; read it after hydration.
28
+ const browserShare = useSyncExternalStore(subscribeNever, browserShareAvailable, serverShareAvailable);
29
+ const copy = copyLink === false ? null : copyLink ?? ((value) => navigator.clipboard.writeText(value));
30
+ const share = systemShare === false ? null : systemShare ?? (browserShare ? (content) => navigator.share(content) : null);
31
+ const [externalAction, setExternalAction] = useState(null);
32
+ const [feedback, setFeedback] = useState(null);
33
+ const [selected, setSelected] = useState([]);
34
+ const [sentHere, setSentHere] = useState(() => new Set());
35
+ const [sending, setSending] = useState(false);
36
+ const [sendError, setSendError] = useState("");
37
+ const [localQuery, setLocalQuery] = useState("");
38
+ // Refs close the gap before React re-renders the busy state, so a double tap cannot start a second request.
39
+ const externalInFlight = useRef(false);
40
+ const batchInFlight = useRef(false);
41
+ // Bumped on every close: results of requests started in an earlier visit must not report into the next one.
42
+ const visit = useRef(0);
43
+ const mounted = useRef(false);
44
+ useEffect(() => {
45
+ mounted.current = true;
46
+ return () => { mounted.current = false; visit.current += 1; };
47
+ }, []);
48
+ useEffect(() => {
49
+ if (open)
50
+ return;
51
+ visit.current += 1;
52
+ setFeedback(null);
53
+ setSelected([]);
54
+ setSentHere(new Set());
55
+ setSendError("");
56
+ setLocalQuery("");
57
+ }, [open]);
58
+ useEffect(() => {
59
+ // A different link makes a "copied" claim about the old one false.
60
+ setFeedback(null);
61
+ }, [link]);
62
+ async function runExternal(action) {
63
+ if (externalInFlight.current)
64
+ return;
65
+ const run = action === "copy" ? copy : share;
66
+ if (!run)
67
+ return;
68
+ externalInFlight.current = true;
69
+ const current = visit.current;
70
+ setExternalAction(action);
71
+ setFeedback(null);
72
+ try {
73
+ if (action === "copy") {
74
+ await copy(link);
75
+ if (current !== visit.current)
76
+ return;
77
+ setFeedback("copied");
78
+ onLinkCopied?.();
79
+ }
80
+ else {
81
+ await share({ url: link, ...(shareTitle ? { title: shareTitle } : {}), ...(shareText ? { text: shareText } : {}) });
82
+ // Resolving only means the OS sheet closed on a target; never announce delivery.
83
+ if (current === visit.current)
84
+ onSystemShare?.("completed");
85
+ }
86
+ }
87
+ catch (error) {
88
+ if (current !== visit.current)
89
+ return;
90
+ if (action === "share" && isAbort(error))
91
+ onSystemShare?.("dismissed");
92
+ else
93
+ setFeedback("failed");
94
+ }
95
+ finally {
96
+ externalInFlight.current = false;
97
+ if (mounted.current)
98
+ setExternalAction(null);
99
+ }
100
+ }
101
+ const sent = new Set([...(recipients?.sentIds ?? []), ...sentHere]);
102
+ const pending = selected.filter(id => !sent.has(id));
103
+ async function sendSelected() {
104
+ if (!recipients || batchInFlight.current || pending.length === 0)
105
+ return;
106
+ batchInFlight.current = true;
107
+ const current = visit.current, requested = pending;
108
+ setSending(true);
109
+ setSendError("");
110
+ try {
111
+ const result = await recipients.onSend(requested);
112
+ if (current !== visit.current)
113
+ return;
114
+ const outcome = resolveShareSheetSendOutcome(requested, result);
115
+ const delivered = new Set(outcome.sent);
116
+ setSentHere(previous => new Set([...previous, ...outcome.sent]));
117
+ // Failed recipients stay selected, so the next press retries only them.
118
+ setSelected(previous => previous.filter(id => !delivered.has(id)));
119
+ if (outcome.failed.length)
120
+ setSendError(result.error ?? recipients.labels.sendFailed);
121
+ }
122
+ catch {
123
+ if (current === visit.current)
124
+ setSendError(recipients.labels.sendFailed);
125
+ }
126
+ finally {
127
+ batchInFlight.current = false;
128
+ if (mounted.current)
129
+ setSending(false);
130
+ }
131
+ }
132
+ const remoteSearch = recipients?.search?.onQueryChange !== undefined;
133
+ const query = remoteSearch ? recipients?.search?.query ?? "" : localQuery;
134
+ const visible = recipients ? (remoteSearch ? recipients.items : filterShareSheetRecipients(recipients.items, query)) : [];
135
+ const status = recipients?.status ?? "ready";
136
+ const actionButton = (action, label, icon) => _jsxs(Stack, { align: "center", gap: shareSheetRecipe.actionCaptionGap, children: [_jsx(IconButton, { label: label, tone: shareSheetRecipe.actionButton.tone, size: shareSheetRecipe.actionButton.size, loading: externalAction === action, disabled: externalAction !== null, onClick: () => void runExternal(action), children: icon }), _jsx(Text, { variant: shareSheetRecipe.actionCaptionVariant, "aria-hidden": "true", children: label })] });
137
+ const actions = copy || share ? _jsxs(Stack, { axis: "inline", justify: "center", gap: shareSheetRecipe.actionGap, children: [copy ? actionButton("copy", labels.copyLink, icons?.copyLink ?? _jsx(Icon, { name: "copy" })) : null, share ? actionButton("share", labels.systemShare, icons?.systemShare ?? _jsx(Icon, { name: "share" })) : null] }) : null;
138
+ const footer = pending.length > 0 || actions ? _jsxs(Stack, { gap: shareSheetRecipe.footerGap, layoutStyle: { width: "100%" }, children: [recipients && pending.length > 0 ? _jsx(Button, { fullWidth: true, tone: shareSheetRecipe.sendButton.tone, size: shareSheetRecipe.sendButton.size, loading: sending, onClick: () => void sendSelected(), children: recipients.labels.send(pending.length) }) : null, actions] }) : undefined;
139
+ return _jsx(Sheet, { open: open, onOpenChange: onOpenChange, title: title, closeLabel: labels.close, busy: sending, size: recipients ? shareSheetRecipe.size.recipients : shareSheetRecipe.size.externalOnly, footer: footer, children: _jsxs(Stack, { gap: shareSheetRecipe.bodyGap, children: [notice, sendError ? _jsx(Notice, { tone: "danger", title: sendError }) : null, feedback === "copied" ? _jsx(Notice, { tone: "success", appearance: "status", title: labels.linkCopied }) : null, feedback === "failed" ? _jsx(Notice, { tone: "danger", title: labels.actionFailed }) : null, recipients ? _jsxs(_Fragment, { children: [_jsx(SearchField, { "aria-label": recipients.labels.search, placeholder: recipients.labels.search, clearLabel: recipients.labels.clearSearch, loading: recipients.search?.searching === true, value: query, onValueChange: remoteSearch ? recipients.search.onQueryChange : setLocalQuery }), status === "error" ? _jsx(Notice, { tone: "danger", title: recipients.labels.loadFailed, action: recipients.onRetry ?
140
+ _jsx(IconButton, { label: recipients.labels.retry, tone: "secondary", size: "small", loading: recipients.retrying === true, onClick: recipients.onRetry, children: _jsx(Icon, { name: "refresh" }) }) : undefined })
141
+ : status === "loading" ? _jsx(Spinner, { label: recipients.labels.loading })
142
+ : visible.length === 0 ? _jsx(EmptyState, { density: "compact", title: query.trim() ? recipients.labels.noResults : recipients.labels.empty })
143
+ : _jsx(ImageChoiceGroup, { label: recipients.labels.group, selectionMode: "multiple", showItemLabels: shareSheetRecipe.picker.showItemLabels, itemLabelLines: shareSheetRecipe.picker.itemLabelLines, disabled: sending, value: resolveShareSheetPickerValue(selected, sent, visible.map(item => item.id)), onValueChange: next => setSelected(next.filter(id => !sent.has(id))), items: visible.map(item => sent.has(item.id) ? { ...item, description: recipients.labels.sent, disabled: true } : item) })] }) : null] }) });
144
+ }
145
+ //# sourceMappingURL=share-sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-sheet.js","sourceRoot":"","sources":["../src/share-sheet.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAkB,MAAM,OAAO,CAAC;AAE1F,OAAO,EACL,0BAA0B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,4BAA4B,GAG3J,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AA+DjD,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;AACtC,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,UAAU,CAAC;AAC9G,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;AAEzC,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAK,KAA2B,CAAC,IAAI,KAAK,YAAY,CAAC;AAC9H,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAC7H;IAChB,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,IAAI,UAAU;QAAE,4BAA4B,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/D,iGAAiG;IACjG,MAAM,YAAY,GAAG,oBAAoB,CAAC,cAAc,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;IACvG,MAAM,IAAI,GAAG,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/G,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAA+B,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAElJ,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC,CAAC;IAClF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA0B,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAoB,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAsB,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/E,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,4GAA4G;IAC5G,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,4GAA4G;IAC5G,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI;YAAE,OAAO;QACjB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QACnB,WAAW,CAAC,IAAI,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAAC,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACX,SAAS,CAAC,GAAG,EAAE;QACb,mEAAmE;QACnE,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,KAAK,UAAU,WAAW,CAAC,MAAsB;QAC/C,IAAI,gBAAgB,CAAC,OAAO;YAAE,OAAO;QACrC,MAAM,GAAG,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1B,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,IAAK,CAAC,IAAI,CAAC,CAAC;gBAClB,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO;oBAAE,OAAO;gBACtC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACtB,YAAY,EAAE,EAAE,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAM,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrH,iFAAiF;gBACjF,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO;oBAAE,aAAa,EAAE,CAAC,WAAW,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO;gBAAE,OAAO;YACtC,IAAI,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;gBAAE,aAAa,EAAE,CAAC,WAAW,CAAC,CAAC;;gBAClE,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,IAAI,OAAO,CAAC,OAAO;gBAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAErD,KAAK,UAAU,YAAY;QACzB,IAAI,CAAC,UAAU,IAAI,aAAa,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACzE,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;QACnD,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,YAAY,CAAC,EAAE,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO;gBAAE,OAAO;YACtC,MAAM,OAAO,GAAG,4BAA4B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjE,wEAAwE;YACxE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM;gBAAE,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxF,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO;gBAAE,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5E,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;YAC9B,IAAI,OAAO,CAAC,OAAO;gBAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,EAAE,MAAM,EAAE,aAAa,KAAK,SAAS,CAAC;IACrE,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IAC1E,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1H,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI,OAAO,CAAC;IAE7C,MAAM,YAAY,GAAG,CAAC,MAAsB,EAAE,KAAa,EAAE,IAAe,EAAE,EAAE,CAC9E,MAAC,KAAK,IAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAE,gBAAgB,CAAC,gBAAgB,aAC1D,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAC1G,OAAO,EAAE,cAAc,KAAK,MAAM,EAAE,QAAQ,EAAE,cAAc,KAAK,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,YAAG,IAAI,GAAc,EAErI,KAAC,IAAI,IAAC,OAAO,EAAE,gBAAgB,CAAC,oBAAoB,iBAAc,MAAM,YAAE,KAAK,GAAQ,IACjF,CAAC;IACX,MAAM,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,MAAC,KAAK,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,QAAQ,EAAC,GAAG,EAAE,gBAAgB,CAAC,SAAS,aAClG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,IAAI,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAC5F,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAChG,CAAC,CAAC,CAAC,IAAI,CAAC;IAChB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,MAAC,KAAK,IAAC,GAAG,EAAE,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAClH,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,SAAS,QAAC,IAAI,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EACpJ,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,YAAY,EAAE,YAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAU,CAAC,CAAC,CAAC,IAAI,EAC7F,OAAO,IACF,CAAC,CAAC,CAAC,SAAS,CAAC;IAErB,OAAO,KAAC,KAAK,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EACzG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,YACxG,MAAC,KAAK,IAAC,GAAG,EAAE,gBAAgB,CAAC,OAAO,aACjC,MAAM,EACN,SAAS,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,SAAS,GAAI,CAAC,CAAC,CAAC,IAAI,EAC7D,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,IAAI,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,UAAU,GAAI,CAAC,CAAC,CAAC,IAAI,EACtG,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,YAAY,GAAI,CAAC,CAAC,CAAC,IAAI,EACnF,UAAU,CAAC,CAAC,CAAC,8BACZ,KAAC,WAAW,kBAAa,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,EACjI,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,MAAO,CAAC,aAAc,CAAC,CAAC,CAAC,aAAa,GAAI,EAClJ,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;gCAC3G,KAAC,UAAU,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAC,WAAW,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,KAAK,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,YAAE,KAAC,IAAI,IAAC,IAAI,EAAC,SAAS,GAAG,GAAa,CAAC,CAAC,CAAC,SAAS,GAAI;4BAClM,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,GAAI;gCACtE,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAI;oCACtI,CAAC,CAAC,KAAC,gBAAgB,IAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,EAAC,UAAU,EAAC,cAAc,EAAE,gBAAgB,CAAC,MAAM,CAAC,cAAc,EACjI,cAAc,EAAE,gBAAgB,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,EACzE,KAAK,EAAE,4BAA4B,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EACjF,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EACpE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAI,IAC9H,CAAC,CAAC,CAAC,IAAI,IACJ,GACF,CAAC;AACX,CAAC","sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState, useSyncExternalStore, type ReactNode } from \"react\";\nimport type { SheetOpenChangeDetails } from \"@hjmds/design-contracts/components/sheet\";\nimport {\n filterShareSheetRecipients, resolveShareSheetPickerValue, resolveShareSheetSendOutcome, shareSheetRecipe, validateShareSheet, validateShareSheetRecipients,\n type ShareSheetLabels, type ShareSheetRecipientDescriptor, type ShareSheetRecipientLabels, type ShareSheetRecipientStatus, type ShareSheetSendResult,\n type ShareSheetShareContent, type ShareSheetSystemShareOutcome,\n} from \"@hjmds/design-contracts/share-sheet\";\nimport { Button, IconButton } from \"./actions.js\";\nimport { EmptyState, Notice } from \"./feedback.js\";\nimport { SearchField } from \"./forms.js\";\nimport { ImageChoiceGroup } from \"./image-choice.js\";\nimport { Spinner } from \"./internal/spinner.js\";\nimport { Stack, Text } from \"./layout.js\";\nimport { Sheet } from \"./overlays.js\";\nimport { Icon } from \"./supplemental-display.js\";\n\nexport type {\n ShareSheetLabels, ShareSheetRecipientLabels, ShareSheetRecipientStatus, ShareSheetSendResult, ShareSheetShareContent, ShareSheetSystemShareOutcome,\n} from \"@hjmds/design-contracts/share-sheet\";\n\nexport type ShareSheetRecipient = ShareSheetRecipientDescriptor & Readonly<{ image: ReactNode }>;\n\nexport type ShareSheetRecipientSearch = Readonly<{\n /** Controlled query. With `onQueryChange` the product owns the query and `items` is already its result. */\n query?: string;\n onQueryChange?: (query: string) => void;\n /** A server search is running. */\n searching?: boolean;\n}>;\n\nexport type ShareSheetRecipients = Readonly<{\n items: readonly ShareSheetRecipient[];\n labels: ShareSheetRecipientLabels;\n /** Default `ready`. */\n status?: ShareSheetRecipientStatus;\n /** Shown with the `error` state. */\n onRetry?: () => void;\n retrying?: boolean;\n /** Omit to filter `items` by label here; pass `onQueryChange` to search on the server. */\n search?: ShareSheetRecipientSearch;\n /** Recipients that already received this link (before the sheet opened). They stay checked and locked. */\n sentIds?: readonly string[];\n /** Sends the link to the selected ids. Delivered ids lock as sent; the rest stay selected for a retry. */\n onSend: (ids: readonly string[]) => Promise<ShareSheetSendResult>;\n}>;\n\nexport type ShareSheetProps = Readonly<{\n open: boolean;\n onOpenChange: (open: boolean, detail: SheetOpenChangeDetails) => void;\n title: string;\n labels: ShareSheetLabels;\n /** The URL that is copied and shared. */\n link: string;\n /** Title and text handed to the OS share sheet with the link. */\n shareTitle?: string;\n shareText?: string;\n /** Writes the link to the clipboard. Default `navigator.clipboard.writeText`; `false` hides the action. */\n copyLink?: ((link: string) => Promise<void>) | false;\n /**\n * Opens the OS share sheet. Default `navigator.share` (the action is hidden where the browser has none); `false`\n * hides the action. Reject with an `AbortError` when the user backs out.\n */\n systemShare?: ((content: ShareSheetShareContent) => Promise<void>) | false;\n onLinkCopied?: () => void;\n /** The OS share sheet closed. `completed` is not a delivery receipt. */\n onSystemShare?: (outcome: ShareSheetSystemShareOutcome) => void;\n /** Product artwork for the two actions. Defaults to the HJM `copy` and `share` icons. */\n icons?: Readonly<{ copyLink?: ReactNode; systemShare?: ReactNode }>;\n /** In-app recipients (group chats, followers). Omit for external sharing only. */\n recipients?: ShareSheetRecipients;\n /** Product feedback above the body, such as a reward earned by sending. */\n notice?: ReactNode;\n}>;\n\ntype ExternalAction = \"copy\" | \"share\";\ntype ExternalFeedback = \"copied\" | \"failed\";\n\nconst subscribeNever = () => () => {};\nconst browserShareAvailable = () => typeof navigator !== \"undefined\" && typeof navigator.share === \"function\";\nconst serverShareAvailable = () => false;\n\nfunction isAbort(error: unknown): boolean {\n return typeof error === \"object\" && error !== null && \"name\" in error && (error as { name: unknown }).name === \"AbortError\";\n}\n\n/**\n * One Sheet for sharing a link (2026-10-26, generalized from BurnTok's share sheets): optional in-app recipients with a\n * batch send, then copy link and the OS share sheet as two round actions in the footer.\n */\nexport function ShareSheet({\n open, onOpenChange, title, labels, link, shareTitle, shareText, copyLink, systemShare, onLinkCopied, onSystemShare, icons, recipients, notice,\n}: ShareSheetProps) {\n validateShareSheet({ title, link, labels });\n if (recipients) validateShareSheetRecipients(recipients.items);\n // navigator.share exists only in some browsers and never on the server; read it after hydration.\n const browserShare = useSyncExternalStore(subscribeNever, browserShareAvailable, serverShareAvailable);\n const copy = copyLink === false ? null : copyLink ?? ((value: string) => navigator.clipboard.writeText(value));\n const share = systemShare === false ? null : systemShare ?? (browserShare ? (content: ShareSheetShareContent) => navigator.share(content) : null);\n\n const [externalAction, setExternalAction] = useState<ExternalAction | null>(null);\n const [feedback, setFeedback] = useState<ExternalFeedback | null>(null);\n const [selected, setSelected] = useState<readonly string[]>([]);\n const [sentHere, setSentHere] = useState<ReadonlySet<string>>(() => new Set());\n const [sending, setSending] = useState(false);\n const [sendError, setSendError] = useState(\"\");\n const [localQuery, setLocalQuery] = useState(\"\");\n // Refs close the gap before React re-renders the busy state, so a double tap cannot start a second request.\n const externalInFlight = useRef(false);\n const batchInFlight = useRef(false);\n // Bumped on every close: results of requests started in an earlier visit must not report into the next one.\n const visit = useRef(0);\n const mounted = useRef(false);\n useEffect(() => {\n mounted.current = true;\n return () => { mounted.current = false; visit.current += 1; };\n }, []);\n useEffect(() => {\n if (open) return;\n visit.current += 1;\n setFeedback(null); setSelected([]); setSentHere(new Set()); setSendError(\"\"); setLocalQuery(\"\");\n }, [open]);\n useEffect(() => {\n // A different link makes a \"copied\" claim about the old one false.\n setFeedback(null);\n }, [link]);\n\n async function runExternal(action: ExternalAction) {\n if (externalInFlight.current) return;\n const run = action === \"copy\" ? copy : share;\n if (!run) return;\n externalInFlight.current = true;\n const current = visit.current;\n setExternalAction(action);\n setFeedback(null);\n try {\n if (action === \"copy\") {\n await copy!(link);\n if (current !== visit.current) return;\n setFeedback(\"copied\");\n onLinkCopied?.();\n } else {\n await share!({ url: link, ...(shareTitle ? { title: shareTitle } : {}), ...(shareText ? { text: shareText } : {}) });\n // Resolving only means the OS sheet closed on a target; never announce delivery.\n if (current === visit.current) onSystemShare?.(\"completed\");\n }\n } catch (error) {\n if (current !== visit.current) return;\n if (action === \"share\" && isAbort(error)) onSystemShare?.(\"dismissed\");\n else setFeedback(\"failed\");\n } finally {\n externalInFlight.current = false;\n if (mounted.current) setExternalAction(null);\n }\n }\n\n const sent = new Set([...(recipients?.sentIds ?? []), ...sentHere]);\n const pending = selected.filter(id => !sent.has(id));\n\n async function sendSelected() {\n if (!recipients || batchInFlight.current || pending.length === 0) return;\n batchInFlight.current = true;\n const current = visit.current, requested = pending;\n setSending(true);\n setSendError(\"\");\n try {\n const result = await recipients.onSend(requested);\n if (current !== visit.current) return;\n const outcome = resolveShareSheetSendOutcome(requested, result);\n const delivered = new Set(outcome.sent);\n setSentHere(previous => new Set([...previous, ...outcome.sent]));\n // Failed recipients stay selected, so the next press retries only them.\n setSelected(previous => previous.filter(id => !delivered.has(id)));\n if (outcome.failed.length) setSendError(result.error ?? recipients.labels.sendFailed);\n } catch {\n if (current === visit.current) setSendError(recipients.labels.sendFailed);\n } finally {\n batchInFlight.current = false;\n if (mounted.current) setSending(false);\n }\n }\n\n const remoteSearch = recipients?.search?.onQueryChange !== undefined;\n const query = remoteSearch ? recipients?.search?.query ?? \"\" : localQuery;\n const visible = recipients ? (remoteSearch ? recipients.items : filterShareSheetRecipients(recipients.items, query)) : [];\n const status = recipients?.status ?? \"ready\";\n\n const actionButton = (action: ExternalAction, label: string, icon: ReactNode) =>\n <Stack align=\"center\" gap={shareSheetRecipe.actionCaptionGap}>\n <IconButton label={label} tone={shareSheetRecipe.actionButton.tone} size={shareSheetRecipe.actionButton.size}\n loading={externalAction === action} disabled={externalAction !== null} onClick={() => void runExternal(action)}>{icon}</IconButton>\n {/* The button already carries the name; the caption is the visible copy of it. */}\n <Text variant={shareSheetRecipe.actionCaptionVariant} aria-hidden=\"true\">{label}</Text>\n </Stack>;\n const actions = copy || share ? <Stack axis=\"inline\" justify=\"center\" gap={shareSheetRecipe.actionGap}>\n {copy ? actionButton(\"copy\", labels.copyLink, icons?.copyLink ?? <Icon name=\"copy\" />) : null}\n {share ? actionButton(\"share\", labels.systemShare, icons?.systemShare ?? <Icon name=\"share\" />) : null}\n </Stack> : null;\n const footer = pending.length > 0 || actions ? <Stack gap={shareSheetRecipe.footerGap} layoutStyle={{ width: \"100%\" }}>\n {recipients && pending.length > 0 ? <Button fullWidth tone={shareSheetRecipe.sendButton.tone} size={shareSheetRecipe.sendButton.size} loading={sending}\n onClick={() => void sendSelected()}>{recipients.labels.send(pending.length)}</Button> : null}\n {actions}\n </Stack> : undefined;\n\n return <Sheet open={open} onOpenChange={onOpenChange} title={title} closeLabel={labels.close} busy={sending}\n size={recipients ? shareSheetRecipe.size.recipients : shareSheetRecipe.size.externalOnly} footer={footer}>\n <Stack gap={shareSheetRecipe.bodyGap}>\n {notice}\n {sendError ? <Notice tone=\"danger\" title={sendError} /> : null}\n {feedback === \"copied\" ? <Notice tone=\"success\" appearance=\"status\" title={labels.linkCopied} /> : null}\n {feedback === \"failed\" ? <Notice tone=\"danger\" title={labels.actionFailed} /> : null}\n {recipients ? <>\n <SearchField aria-label={recipients.labels.search} placeholder={recipients.labels.search} clearLabel={recipients.labels.clearSearch}\n loading={recipients.search?.searching === true} value={query} onValueChange={remoteSearch ? recipients.search!.onQueryChange! : setLocalQuery} />\n {status === \"error\" ? <Notice tone=\"danger\" title={recipients.labels.loadFailed} action={recipients.onRetry ?\n <IconButton label={recipients.labels.retry} tone=\"secondary\" size=\"small\" loading={recipients.retrying === true} onClick={recipients.onRetry}><Icon name=\"refresh\" /></IconButton> : undefined} />\n : status === \"loading\" ? <Spinner label={recipients.labels.loading} />\n : visible.length === 0 ? <EmptyState density=\"compact\" title={query.trim() ? recipients.labels.noResults : recipients.labels.empty} />\n : <ImageChoiceGroup label={recipients.labels.group} selectionMode=\"multiple\" showItemLabels={shareSheetRecipe.picker.showItemLabels}\n itemLabelLines={shareSheetRecipe.picker.itemLabelLines} disabled={sending}\n value={resolveShareSheetPickerValue(selected, sent, visible.map(item => item.id))}\n onValueChange={next => setSelected(next.filter(id => !sent.has(id)))}\n items={visible.map(item => sent.has(item.id) ? { ...item, description: recipients.labels.sent, disabled: true } : item)} />}\n </> : null}\n </Stack>\n </Sheet>;\n}\n"]}
package/dist/styles.css CHANGED
@@ -1014,6 +1014,18 @@
1014
1014
  /* Product classification color (Badge categoryColor): the renderer resolves fill, ink and stroke per theme and checks AA. */
1015
1015
  .hjm-badge[data-tone="category"] { color: var(--hjm-badge-category-content); background: var(--hjm-badge-category-background); }
1016
1016
  .hjm-badge[data-variant="outline"][data-tone="category"] { background: transparent; border-color: var(--hjm-badge-category-border); }
1017
+
1018
+ /* Plain status badges keep semantic ink without a plate or outline. */
1019
+ .hjm-badge[data-variant="plain"] { background: transparent; border: 1px solid var(--hjm-color-border); color: var(--hjm-color-text-muted); }
1020
+ .hjm-badge[data-variant="plain"][data-tone="strong"] { color: var(--hjm-color-text); }
1021
+ .hjm-badge[data-variant="plain"][data-tone="brand"] { color: var(--hjm-color-content-brand); }
1022
+ .hjm-badge[data-variant="plain"][data-tone="danger"] { color: var(--hjm-color-danger); }
1023
+ .hjm-badge[data-variant="plain"][data-tone="info"] { background: transparent; color: var(--hjm-accent-info); border-color: color-mix(in srgb, var(--hjm-accent-info) 30%, transparent); }
1024
+ .hjm-badge[data-variant="plain"][data-tone="success"] { background: transparent; color: var(--hjm-accent-success); border-color: color-mix(in srgb, var(--hjm-accent-success) 30%, transparent); }
1025
+ .hjm-badge[data-variant="plain"][data-tone="warning"] { background: transparent; color: var(--hjm-accent-warning); border-color: color-mix(in srgb, var(--hjm-accent-warning) 30%, transparent); }
1026
+ .hjm-badge[data-variant="plain"][data-tone="attention"] { background: transparent; color: var(--hjm-accent-attention); border-color: color-mix(in srgb, var(--hjm-accent-attention) 30%, transparent); }
1027
+ .hjm-badge[data-variant="plain"][data-tone="category"] { background: transparent; border-color: var(--hjm-badge-category-border); }
1028
+ .hjm-badge[data-variant="plain"] { border: 0; }
1017
1029
  .hjm-tag[data-tone="info"] { color: var(--hjm-accent-info); background: color-mix(in srgb, var(--hjm-accent-info) 14%, transparent); border-color: color-mix(in srgb, var(--hjm-accent-info) 30%, transparent); }
1018
1030
  .hjm-tag[data-tone="success"] { color: var(--hjm-accent-success); background: color-mix(in srgb, var(--hjm-accent-success) 14%, transparent); border-color: color-mix(in srgb, var(--hjm-accent-success) 30%, transparent); }
1019
1031
  .hjm-tag[data-tone="attention"] { color: var(--hjm-accent-attention); background: color-mix(in srgb, var(--hjm-accent-attention) 14%, transparent); border-color: color-mix(in srgb, var(--hjm-accent-attention) 30%, transparent); }
@@ -1471,8 +1483,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
1471
1483
  .hjm-line-score__table .hjm-line-score__team { inset-inline-start: 0; }
1472
1484
  .hjm-line-score__table td.hjm-line-score__period { min-inline-size: 26px; color: var(--hjm-color-text-sub); }
1473
1485
  .hjm-line-score__table td[data-scored] { color: var(--hjm-color-text); font-weight: var(--hjm-text-emphasis-medium); }
1474
- .hjm-line-score__table [data-current] { background: var(--hjm-table-family-selected); }
1475
- .hjm-line-score__table th[data-current] { color: var(--hjm-color-content-brand); }
1486
+ .hjm-line-score__table [data-current] { background: var(--hjm-line-score-current-background); }
1487
+ .hjm-line-score__table th[data-current] { color: var(--hjm-line-score-current-color); }
1476
1488
  .hjm-line-score__total { inline-size: var(--hjm-line-score-total-width); min-inline-size: var(--hjm-line-score-total-width); color: var(--hjm-color-text-muted); font-weight: var(--hjm-text-emphasis-medium); }
1477
1489
  /* A collapsed-table border stays with the table, not the pinned cell, so the edge is an inset shadow. */
1478
1490
  .hjm-line-score__total-edge { box-shadow: inset 1px 0 0 var(--hjm-color-border); }
@@ -2861,6 +2873,26 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
2861
2873
  .hjm-timeline[data-selectable] .hjm-timeline__item { cursor: pointer; }
2862
2874
  .hjm-timeline__item[aria-selected="true"] { background: var(--hjm-color-surface-selected); box-shadow: inset 0 0 0 1px var(--hjm-color-border-control); }
2863
2875
  .hjm-timeline__item[role="option"]:focus-visible { outline: var(--hjm-focus-width) solid var(--hjm-color-focus); outline-offset: var(--hjm-focus-offset); }
2876
+ .hjm-timeline__details { display: grid; gap: var(--hjm-space-xxs); }
2877
+ .hjm-timeline__details[hidden] { display: none; }
2878
+ /* Default journal (2026-10-27 user choice): unfilled reading rows. Passive histories keep
2879
+ all details/actions; selectable histories add native disclosure buttons. "record" retains the previous surface. */
2880
+ .hjm-timeline[data-variant="journal"] { gap: 0; }
2881
+ .hjm-timeline[data-variant="journal"] .hjm-timeline__item {
2882
+ inline-size: 100%; min-block-size: 44px; padding: var(--hjm-space-md) 0; border: 0;
2883
+ border-radius: 0; background: transparent; color: inherit; font: inherit; text-align: start;
2884
+ }
2885
+ .hjm-timeline[data-variant="journal"] .hjm-timeline__dot { inline-size: .5rem; block-size: .5rem; margin-block-start: calc((1lh - .5rem) / 2); background: var(--hjm-color-border); border: 0; }
2886
+ .hjm-timeline[data-variant="journal"] [data-state="selected"] .hjm-timeline__dot { background: var(--hjm-color-text); }
2887
+ .hjm-timeline[data-variant="journal"] [data-tone="info"] .hjm-timeline__dot { background: var(--hjm-accent-info); }
2888
+ .hjm-timeline[data-variant="journal"] [data-tone="success"] .hjm-timeline__dot { background: var(--hjm-accent-success); }
2889
+ .hjm-timeline[data-variant="journal"] [data-tone="attention"] .hjm-timeline__dot { background: var(--hjm-accent-attention); }
2890
+ .hjm-timeline[data-variant="journal"] .hjm-timeline__connector { inset-block: calc((1lh + .5rem) / 2) calc(-2 * var(--hjm-space-md) - .5lh); }
2891
+ .hjm-timeline[data-variant="journal"] .hjm-timeline__heading { flex-wrap: nowrap; justify-content: space-between; }
2892
+ .hjm-timeline__chevron { color: var(--hjm-color-text-muted); flex-shrink: 0; }
2893
+ .hjm-timeline [aria-expanded="true"] .hjm-timeline__chevron { transform: rotate(180deg); }
2894
+ .hjm-timeline[data-variant="journal"] .hjm-timeline__details { padding-block-start: var(--hjm-space-xs); }
2895
+ .hjm-timeline[data-variant="journal"] .hjm-timeline__item:focus-visible { outline: var(--hjm-focus-width) solid var(--hjm-color-focus); outline-offset: var(--hjm-focus-offset); }
2864
2896
  .hjm-accordion { border-block-start: 1px solid var(--hjm-color-border); }
2865
2897
  .hjm-accordion__item { border-block-end: 1px solid var(--hjm-color-border); }
2866
2898
  .hjm-accordion__header { margin: 0; }
@@ -3622,7 +3654,7 @@ button.hjm-chat-message__media-item:focus-visible { outline: 2px solid var(--hjm
3622
3654
 
3623
3655
  .hjm-image-choice { display: flex; flex-direction: column; gap: var(--hjm-space-xs); }
3624
3656
  .hjm-image-choice__label { font-weight: var(--hjm-text-emphasis-medium); }
3625
- .hjm-image-choice__tiles { display: grid; grid-template-columns: repeat(auto-fit, calc(var(--hjm-image-choice-size) + (var(--hjm-image-choice-ring) + var(--hjm-image-choice-offset)) * 2)); justify-content: space-between; gap: var(--hjm-image-choice-gap); }
3657
+ .hjm-image-choice__tiles { display: grid; grid-template-columns: repeat(auto-fill, calc(var(--hjm-image-choice-size) + (var(--hjm-image-choice-ring) + var(--hjm-image-choice-offset)) * 2)); justify-content: space-between; gap: var(--hjm-image-choice-gap); }
3626
3658
  /* The button is a column (ring frame, optional item label) so the label shares the tap target; the ring is drawn on
3627
3659
  the inner frame (2026-10-18 showItemLabels). */
3628
3660
  .hjm-image-choice__tile { display: flex; flex-direction: column; gap: var(--hjm-image-choice-item-label-gap); inline-size: calc(var(--hjm-image-choice-size) + (var(--hjm-image-choice-ring) + var(--hjm-image-choice-offset)) * 2); padding: 0; border: 0; border-radius: calc(var(--hjm-image-choice-radius) + var(--hjm-image-choice-ring) + var(--hjm-image-choice-offset)); background: none; color: inherit; cursor: pointer; }
@@ -3857,6 +3889,8 @@ button.hjm-chat-message__media-item:focus-visible { outline: 2px solid var(--hjm
3857
3889
  .hjm-card__background-interaction > :first-child { width: 100%; height: 100%; }
3858
3890
  .hjm-card__media-badges { position: absolute; inset-block-start: var(--hjm-space-sm); inset-inline-end: var(--hjm-space-sm); display: flex; flex-wrap: wrap; gap: var(--hjm-space-xs); z-index: 1; }
3859
3891
  .hjm-card__scrim { position: absolute; inset: 0; background: var(--hjm-card-background-scrim); }
3892
+ .hjm-card:has(> .hjm-card__corner-badges) { position: relative; }
3893
+ .hjm-card__corner-badges { position: absolute; z-index: 1; pointer-events: none; display: flex; }
3860
3894
  .hjm-card__badges { display: flex; flex-wrap: wrap; gap: var(--hjm-space-xs); }
3861
3895
  .hjm-card__badges[data-align="center"] { justify-content: center; }
3862
3896
  .hjm-card[data-background-media="true"] > .hjm-card__body { position: relative; flex: 0 1 auto; margin-block-start: auto; }
@@ -1015,6 +1015,18 @@
1015
1015
  /* Product classification color (Badge categoryColor): the renderer resolves fill, ink and stroke per theme and checks AA. */
1016
1016
  .hjm-badge[data-tone="category"] { color: var(--hjm-badge-category-content); background: var(--hjm-badge-category-background); }
1017
1017
  .hjm-badge[data-variant="outline"][data-tone="category"] { background: transparent; border-color: var(--hjm-badge-category-border); }
1018
+
1019
+ /* Plain status badges keep semantic ink without a plate or outline. */
1020
+ .hjm-badge[data-variant="plain"] { background: transparent; border: 1px solid var(--hjm-color-border); color: var(--hjm-color-text-muted); }
1021
+ .hjm-badge[data-variant="plain"][data-tone="strong"] { color: var(--hjm-color-text); }
1022
+ .hjm-badge[data-variant="plain"][data-tone="brand"] { color: var(--hjm-color-content-brand); }
1023
+ .hjm-badge[data-variant="plain"][data-tone="danger"] { color: var(--hjm-color-danger); }
1024
+ .hjm-badge[data-variant="plain"][data-tone="info"] { background: transparent; color: var(--hjm-accent-info); border-color: color-mix(in srgb, var(--hjm-accent-info) 30%, transparent); }
1025
+ .hjm-badge[data-variant="plain"][data-tone="success"] { background: transparent; color: var(--hjm-accent-success); border-color: color-mix(in srgb, var(--hjm-accent-success) 30%, transparent); }
1026
+ .hjm-badge[data-variant="plain"][data-tone="warning"] { background: transparent; color: var(--hjm-accent-warning); border-color: color-mix(in srgb, var(--hjm-accent-warning) 30%, transparent); }
1027
+ .hjm-badge[data-variant="plain"][data-tone="attention"] { background: transparent; color: var(--hjm-accent-attention); border-color: color-mix(in srgb, var(--hjm-accent-attention) 30%, transparent); }
1028
+ .hjm-badge[data-variant="plain"][data-tone="category"] { background: transparent; border-color: var(--hjm-badge-category-border); }
1029
+ .hjm-badge[data-variant="plain"] { border: 0; }
1018
1030
  .hjm-tag[data-tone="info"] { color: var(--hjm-accent-info); background: color-mix(in srgb, var(--hjm-accent-info) 14%, transparent); border-color: color-mix(in srgb, var(--hjm-accent-info) 30%, transparent); }
1019
1031
  .hjm-tag[data-tone="success"] { color: var(--hjm-accent-success); background: color-mix(in srgb, var(--hjm-accent-success) 14%, transparent); border-color: color-mix(in srgb, var(--hjm-accent-success) 30%, transparent); }
1020
1032
  .hjm-tag[data-tone="attention"] { color: var(--hjm-accent-attention); background: color-mix(in srgb, var(--hjm-accent-attention) 14%, transparent); border-color: color-mix(in srgb, var(--hjm-accent-attention) 30%, transparent); }
@@ -1472,8 +1484,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
1472
1484
  .hjm-line-score__table .hjm-line-score__team { inset-inline-start: 0; }
1473
1485
  .hjm-line-score__table td.hjm-line-score__period { min-inline-size: 26px; color: var(--hjm-color-text-sub); }
1474
1486
  .hjm-line-score__table td[data-scored] { color: var(--hjm-color-text); font-weight: var(--hjm-text-emphasis-medium); }
1475
- .hjm-line-score__table [data-current] { background: var(--hjm-table-family-selected); }
1476
- .hjm-line-score__table th[data-current] { color: var(--hjm-color-content-brand); }
1487
+ .hjm-line-score__table [data-current] { background: var(--hjm-line-score-current-background); }
1488
+ .hjm-line-score__table th[data-current] { color: var(--hjm-line-score-current-color); }
1477
1489
  .hjm-line-score__total { inline-size: var(--hjm-line-score-total-width); min-inline-size: var(--hjm-line-score-total-width); color: var(--hjm-color-text-muted); font-weight: var(--hjm-text-emphasis-medium); }
1478
1490
  /* A collapsed-table border stays with the table, not the pinned cell, so the edge is an inset shadow. */
1479
1491
  .hjm-line-score__total-edge { box-shadow: inset 1px 0 0 var(--hjm-color-border); }
@@ -2862,6 +2874,26 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
2862
2874
  .hjm-timeline[data-selectable] .hjm-timeline__item { cursor: pointer; }
2863
2875
  .hjm-timeline__item[aria-selected="true"] { background: var(--hjm-color-surface-selected); box-shadow: inset 0 0 0 1px var(--hjm-color-border-control); }
2864
2876
  .hjm-timeline__item[role="option"]:focus-visible { outline: var(--hjm-focus-width) solid var(--hjm-color-focus); outline-offset: var(--hjm-focus-offset); }
2877
+ .hjm-timeline__details { display: grid; gap: var(--hjm-space-xxs); }
2878
+ .hjm-timeline__details[hidden] { display: none; }
2879
+ /* Default journal (2026-10-27 user choice): unfilled reading rows. Passive histories keep
2880
+ all details/actions; selectable histories add native disclosure buttons. "record" retains the previous surface. */
2881
+ .hjm-timeline[data-variant="journal"] { gap: 0; }
2882
+ .hjm-timeline[data-variant="journal"] .hjm-timeline__item {
2883
+ inline-size: 100%; min-block-size: 44px; padding: var(--hjm-space-md) 0; border: 0;
2884
+ border-radius: 0; background: transparent; color: inherit; font: inherit; text-align: start;
2885
+ }
2886
+ .hjm-timeline[data-variant="journal"] .hjm-timeline__dot { inline-size: .5rem; block-size: .5rem; margin-block-start: calc((1lh - .5rem) / 2); background: var(--hjm-color-border); border: 0; }
2887
+ .hjm-timeline[data-variant="journal"] [data-state="selected"] .hjm-timeline__dot { background: var(--hjm-color-text); }
2888
+ .hjm-timeline[data-variant="journal"] [data-tone="info"] .hjm-timeline__dot { background: var(--hjm-accent-info); }
2889
+ .hjm-timeline[data-variant="journal"] [data-tone="success"] .hjm-timeline__dot { background: var(--hjm-accent-success); }
2890
+ .hjm-timeline[data-variant="journal"] [data-tone="attention"] .hjm-timeline__dot { background: var(--hjm-accent-attention); }
2891
+ .hjm-timeline[data-variant="journal"] .hjm-timeline__connector { inset-block: calc((1lh + .5rem) / 2) calc(-2 * var(--hjm-space-md) - .5lh); }
2892
+ .hjm-timeline[data-variant="journal"] .hjm-timeline__heading { flex-wrap: nowrap; justify-content: space-between; }
2893
+ .hjm-timeline__chevron { color: var(--hjm-color-text-muted); flex-shrink: 0; }
2894
+ .hjm-timeline [aria-expanded="true"] .hjm-timeline__chevron { transform: rotate(180deg); }
2895
+ .hjm-timeline[data-variant="journal"] .hjm-timeline__details { padding-block-start: var(--hjm-space-xs); }
2896
+ .hjm-timeline[data-variant="journal"] .hjm-timeline__item:focus-visible { outline: var(--hjm-focus-width) solid var(--hjm-color-focus); outline-offset: var(--hjm-focus-offset); }
2865
2897
  .hjm-accordion { border-block-start: 1px solid var(--hjm-color-border); }
2866
2898
  .hjm-accordion__item { border-block-end: 1px solid var(--hjm-color-border); }
2867
2899
  .hjm-accordion__header { margin: 0; }
@@ -3623,7 +3655,7 @@ button.hjm-chat-message__media-item:focus-visible { outline: 2px solid var(--hjm
3623
3655
 
3624
3656
  .hjm-image-choice { display: flex; flex-direction: column; gap: var(--hjm-space-xs); }
3625
3657
  .hjm-image-choice__label { font-weight: var(--hjm-text-emphasis-medium); }
3626
- .hjm-image-choice__tiles { display: grid; grid-template-columns: repeat(auto-fit, calc(var(--hjm-image-choice-size) + (var(--hjm-image-choice-ring) + var(--hjm-image-choice-offset)) * 2)); justify-content: space-between; gap: var(--hjm-image-choice-gap); }
3658
+ .hjm-image-choice__tiles { display: grid; grid-template-columns: repeat(auto-fill, calc(var(--hjm-image-choice-size) + (var(--hjm-image-choice-ring) + var(--hjm-image-choice-offset)) * 2)); justify-content: space-between; gap: var(--hjm-image-choice-gap); }
3627
3659
  /* The button is a column (ring frame, optional item label) so the label shares the tap target; the ring is drawn on
3628
3660
  the inner frame (2026-10-18 showItemLabels). */
3629
3661
  .hjm-image-choice__tile { display: flex; flex-direction: column; gap: var(--hjm-image-choice-item-label-gap); inline-size: calc(var(--hjm-image-choice-size) + (var(--hjm-image-choice-ring) + var(--hjm-image-choice-offset)) * 2); padding: 0; border: 0; border-radius: calc(var(--hjm-image-choice-radius) + var(--hjm-image-choice-ring) + var(--hjm-image-choice-offset)); background: none; color: inherit; cursor: pointer; }
@@ -3858,6 +3890,8 @@ button.hjm-chat-message__media-item:focus-visible { outline: 2px solid var(--hjm
3858
3890
  .hjm-card__background-interaction > :first-child { width: 100%; height: 100%; }
3859
3891
  .hjm-card__media-badges { position: absolute; inset-block-start: var(--hjm-space-sm); inset-inline-end: var(--hjm-space-sm); display: flex; flex-wrap: wrap; gap: var(--hjm-space-xs); z-index: 1; }
3860
3892
  .hjm-card__scrim { position: absolute; inset: 0; background: var(--hjm-card-background-scrim); }
3893
+ .hjm-card:has(> .hjm-card__corner-badges) { position: relative; }
3894
+ .hjm-card__corner-badges { position: absolute; z-index: 1; pointer-events: none; display: flex; }
3861
3895
  .hjm-card__badges { display: flex; flex-wrap: wrap; gap: var(--hjm-space-xs); }
3862
3896
  .hjm-card__badges[data-align="center"] { justify-content: center; }
3863
3897
  .hjm-card[data-background-media="true"] > .hjm-card__body { position: relative; flex: 0 1 auto; margin-block-start: auto; }
@@ -62,7 +62,7 @@ export function LineScore({ teams, totals, currentPeriod = null, minPeriods, ren
62
62
  return;
63
63
  container.querySelector(`thead [data-period="${focusPeriod}"]`)?.scrollIntoView({ block: "nearest", inline: "nearest" });
64
64
  }, [focusPeriod, periods.length]);
65
- return (_jsx("div", { ref: host, className: classNames("hjm-table-family", "hjm-line-score", className), style: { ...withFamilyStyle(layoutStyle), "--hjm-line-score-total-count": totalColumns.length }, children: _jsxs("table", { className: "hjm-line-score__table", "aria-label": accessibilityLabel, children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("td", { className: "hjm-line-score__team" }), periods.map((column, index) => {
65
+ return (_jsx("div", { ref: host, className: classNames("hjm-table-family", "hjm-line-score", className), style: { ...withFamilyStyle(layoutStyle), "--hjm-line-score-current-background": tableCssColor(dataTableFamilyRecipe.currentPeriod.background), "--hjm-line-score-current-color": tableCssColor(dataTableFamilyRecipe.currentPeriod.color), "--hjm-line-score-total-count": totalColumns.length }, children: _jsxs("table", { className: "hjm-line-score__table", "aria-label": accessibilityLabel, children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("td", { className: "hjm-line-score__team" }), periods.map((column, index) => {
66
66
  const live = score.currentPeriod === index + 1;
67
67
  return _jsx("th", { scope: "col", className: "hjm-line-score__period", "data-period": index + 1, "aria-current": live ? "true" : undefined, "data-current": live || undefined, children: column.header }, column.id);
68
68
  }), totalColumns.map((column, index) => (_jsx("th", { scope: "col", className: classNames("hjm-line-score__total", index === 0 && "hjm-line-score__total-edge"), style: totalOffset(totalColumns.length, index), children: column.header }, column.id)))] }) }), _jsx("tbody", { children: teams.map((team) => (_jsxs("tr", { "data-leader": score.leaderId === team.id || undefined, children: [_jsx("th", { scope: "row", className: "hjm-line-score__team", children: _jsxs("span", { className: "hjm-line-score__team-content", children: [renderTeam?.(team), _jsx("span", { children: team.name })] }) }), periods.map((column, index) => {