@octaviaflow/core 3.0.10 → 3.0.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"AuthCard.d.ts","sourceRoot":"","sources":["../../../src/components/AuthCard/AuthCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAGjD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,oEAAoE;IACpE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,GACV,EAAE,aAAa,2CAgBf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAe,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAQ3E;AAKD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAYxF;AAKD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,aAAa,2CA8BvF;AAKD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;AAEzE,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,cAAc,2CAIlF"}
1
+ {"version":3,"file":"AuthCard.d.ts","sourceRoot":"","sources":["../../../src/components/AuthCard/AuthCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,SAAS,EAA2B,MAAM,OAAO,CAAC;AAGpF,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,oEAAoE;IACpE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,GACV,EAAE,aAAa,2CAgBf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,QAAe,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAQ3E;AAKD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAYxF;AAKD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,aAAa,2CA6EvF;AAKD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;AAEzE,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,cAAc,2CAIlF"}
package/dist/index.cjs CHANGED
@@ -415,24 +415,61 @@ function AuthTabs({ tabs, defaultTab, value, onChange, className }) {
415
415
  onChange?.(id);
416
416
  };
417
417
  const activeTab = tabs.find((t) => t.id === active) ?? tabs[0];
418
+ const scopeId = (0, import_react2.useId)();
419
+ const tabRefs = (0, import_react2.useRef)({});
420
+ const handleKeyDown = (e) => {
421
+ const ids = tabs.map((t) => t.id);
422
+ const currentIdx = ids.indexOf(active);
423
+ if (currentIdx === -1) return;
424
+ let nextIdx = null;
425
+ if (e.key === "ArrowRight") nextIdx = (currentIdx + 1) % ids.length;
426
+ else if (e.key === "ArrowLeft") nextIdx = (currentIdx - 1 + ids.length) % ids.length;
427
+ else if (e.key === "Home") nextIdx = 0;
428
+ else if (e.key === "End") nextIdx = ids.length - 1;
429
+ if (nextIdx === null) return;
430
+ e.preventDefault();
431
+ const nextId = ids[nextIdx];
432
+ select(nextId);
433
+ tabRefs.current[nextId]?.focus();
434
+ };
418
435
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cn("ods-auth-tabs", className), children: [
419
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "ods-auth-tabs__list", role: "tablist", children: tabs.map((t) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
420
- "button",
436
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "ods-auth-tabs__list", role: "tablist", children: tabs.map((t) => {
437
+ const isActive2 = t.id === active;
438
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
439
+ "button",
440
+ {
441
+ ref: (el) => {
442
+ tabRefs.current[t.id] = el;
443
+ },
444
+ type: "button",
445
+ role: "tab",
446
+ id: `${scopeId}-tab-${t.id}`,
447
+ "aria-selected": isActive2,
448
+ "aria-controls": `${scopeId}-panel-${t.id}`,
449
+ tabIndex: isActive2 ? 0 : -1,
450
+ className: cn("ods-auth-tabs__tab", isActive2 && "ods-auth-tabs__tab--active"),
451
+ onClick: () => select(t.id),
452
+ onKeyDown: handleKeyDown,
453
+ children: [
454
+ t.icon && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "ods-auth-tabs__icon", children: t.icon }),
455
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "ods-auth-tabs__label", children: t.label }),
456
+ t.description && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "ods-auth-tabs__desc", children: t.description })
457
+ ]
458
+ },
459
+ t.id
460
+ );
461
+ }) }),
462
+ activeTab && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
463
+ "div",
421
464
  {
422
- type: "button",
423
- role: "tab",
424
- "aria-selected": t.id === active,
425
- className: cn("ods-auth-tabs__tab", t.id === active && "ods-auth-tabs__tab--active"),
426
- onClick: () => select(t.id),
427
- children: [
428
- t.icon && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "ods-auth-tabs__icon", children: t.icon }),
429
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "ods-auth-tabs__label", children: t.label }),
430
- t.description && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "ods-auth-tabs__desc", children: t.description })
431
- ]
432
- },
433
- t.id
434
- )) }),
435
- activeTab && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "ods-auth-tabs__panel", children: activeTab.content })
465
+ role: "tabpanel",
466
+ id: `${scopeId}-panel-${activeTab.id}`,
467
+ "aria-labelledby": `${scopeId}-tab-${activeTab.id}`,
468
+ tabIndex: 0,
469
+ className: "ods-auth-tabs__panel",
470
+ children: activeTab.content
471
+ }
472
+ )
436
473
  ] });
437
474
  }
438
475
  function AuthBadge({ tone = "neutral", children, className }) {