@base-framework/ui 1.2.17 → 1.2.19

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.
package/dist/atoms.es.js CHANGED
@@ -1,4 +1,4 @@
1
- import { c as e, f as t, h as o, i as n, k as r, l as i, m as u, n as l, t as p, w as I, J as c, L as m, M as d, U as g, $ as B, a0 as T, a1 as C, a4 as f, a5 as S, a6 as x, aa as h, af as k, am as M, ap as U, at as w, au as F, aw as H, ax as L, ay as P, aC as R, aH as V, aI as Z, aK as b, aO as D, aP as G, aQ as J, aR as W, aU as v, aV as y, aW as E, aZ as K, a_ as N } from "./full-page-BJUvF3X2.js";
1
+ import { c as e, f as t, h as o, i as n, k as r, l as i, m as u, n as l, t as p, w as I, J as c, L as m, M as d, U as g, $ as B, a0 as T, a1 as C, a4 as f, a5 as S, a6 as x, aa as h, af as k, am as M, ap as U, at as w, au as F, aw as H, ax as L, ay as P, aC as R, aH as V, aI as Z, aK as b, aO as D, aP as G, aQ as J, aR as W, aU as v, aV as y, aW as E, aZ as K, a_ as N } from "./full-page-DLnHihAW.js";
2
2
  import { S as Q } from "./skeleton-BlY3opxG.js";
3
3
  export {
4
4
  e as Badge,
@@ -1,6 +1,6 @@
1
1
  import { Component as c, Html as m, Dom as y, base as w, Data as T, Builder as b, DateTime as g } from "@base-framework/base";
2
2
  import { Li as v, Span as u, Div as r, Ul as D, Button as S, I as x, OnState as B, Time as Y } from "@base-framework/atoms";
3
- import { ar as k, b0 as C, f as h, al as N, F as O } from "./full-page-BJUvF3X2.js";
3
+ import { ar as k, b0 as C, f as h, al as N, F as O } from "./full-page-DLnHihAW.js";
4
4
  import { List as F, DynamicTime as E } from "@base-framework/organisms";
5
5
  class X extends c {
6
6
  /**
@@ -316,12 +316,16 @@ const ha = r((e, t) => {
316
316
  ...t,
317
317
  // @ts-ignore
318
318
  class: `bttn ${e.class} ${t.class || ""}`
319
- }, s)), St = (e) => () => {
320
- if (e.allowHistory === !0 && globalThis.history.length > 2) {
321
- globalThis.history.back();
322
- return;
323
- }
324
- e.backUrl && app.navigate(e.backUrl);
319
+ }, s)), St = (e) => {
320
+ const t = globalThis.history.length;
321
+ return () => {
322
+ const a = globalThis.history.length - t + 1;
323
+ if (e.allowHistory === !0 && t > 1) {
324
+ globalThis.history.go(-a);
325
+ return;
326
+ }
327
+ e.backUrl && app.navigate(e.backUrl);
328
+ };
325
329
  }, $t = (e) => r((t, s) => (t.icon = t.icon || u.arrows.left, t.click = t.click || St(t), xe({
326
330
  ...e,
327
331
  ...t
package/dist/index.es.js CHANGED
@@ -1,10 +1,10 @@
1
- import { A as s, a as o, B as t, b as r, c as n, d as i, e as l, f as p, C as u, g as d, h as m, i as g, j as c, k as T, l as C, m as S, n as I, o as b, p as D, q as B, r as F, D as k, s as M, t as P, u as v, v as N, w as f, x as h, y as x, z as y, E as U, F as W, G as L, H as w, I as H, J as A, K as G, L as R, M as O, N as E, O as V, P as Z, Q as j, R as J, S as _, T as q, U as z, V as K, W as Q, X, Y, Z as $, _ as aa, $ as ea, a0 as sa, a1 as oa, a2 as ta, a3 as ra, a4 as na, a5 as ia, a6 as la, a7 as pa, a8 as ua, a9 as da, aa as ma, ab as ga, ac as ca, ad as Ta, ae as Ca, af as Sa, ag as Ia, ah as ba, ai as Da, aj as Ba, ak as Fa, al as ka, am as Ma, an as Pa, ao as va, ap as Na, aq as fa, ar as ha, as as xa, at as ya, au as Ua, av as Wa, aw as La, ax as wa, ay as Ha, az as Aa, aA as Ga, aB as Ra, aC as Oa, aD as Ea, aE as Va, aF as Za, aG as ja, aH as Ja, aI as _a, aJ as qa, aK as za, aL as Ka, aM as Qa, aN as Xa, aO as Ya, aP as $a, aQ as ae, aR as ee, aS as se, aT as oe, aU as te, aV as re, aW as ne, aX as ie, aY as le, aZ as pe, a_ as ue, a$ as de } from "./full-page-BJUvF3X2.js";
1
+ import { A as s, a as o, B as t, b as r, c as n, d as i, e as l, f as p, C as u, g as d, h as m, i as g, j as c, k as T, l as C, m as S, n as I, o as b, p as D, q as B, r as F, D as k, s as M, t as P, u as v, v as N, w as f, x as h, y as x, z as y, E as U, F as W, G as L, H as w, I as H, J as A, K as G, L as R, M as O, N as E, O as V, P as Z, Q as j, R as J, S as _, T as q, U as z, V as K, W as Q, X, Y, Z as $, _ as aa, $ as ea, a0 as sa, a1 as oa, a2 as ta, a3 as ra, a4 as na, a5 as ia, a6 as la, a7 as pa, a8 as ua, a9 as da, aa as ma, ab as ga, ac as ca, ad as Ta, ae as Ca, af as Sa, ag as Ia, ah as ba, ai as Da, aj as Ba, ak as Fa, al as ka, am as Ma, an as Pa, ao as va, ap as Na, aq as fa, ar as ha, as as xa, at as ya, au as Ua, av as Wa, aw as La, ax as wa, ay as Ha, az as Aa, aA as Ga, aB as Ra, aC as Oa, aD as Ea, aE as Va, aF as Za, aG as ja, aH as Ja, aI as _a, aJ as qa, aK as za, aL as Ka, aM as Qa, aN as Xa, aO as Ya, aP as $a, aQ as ae, aR as ee, aS as se, aT as oe, aU as te, aV as re, aW as ne, aX as ie, aY as le, aZ as pe, a_ as ue, a$ as de } from "./full-page-DLnHihAW.js";
2
2
  import { S as ge } from "./skeleton-BlY3opxG.js";
3
3
  import { Icons as Te, MaterialSymbols as Ce } from "./icons.es.js";
4
- import { C as Ie, D as be, a as De, b as Be, c as Fe, d as ke, e as Me, M as Pe, N as ve, S as Ne, f as fe, g as he, h as xe, T as ye, i as Ue } from "./confirmation-Dn9GDvhl.js";
5
- import { B as Le, I as we, N as He, P as Ae, S as Ge, T as Re, a as Oe, b as Ee, U as Ve, c as Ze, d as je, e as Je, W as _e, f as qe, g as ze, h as Ke, i as Qe, j as Xe, k as Ye, l as $e, m as as, n as es } from "./signature-panel-Bu-traik.js";
6
- import { S as os } from "./sidebar-menu-BRTZ4oP4.js";
7
- import { B as rs, C as ns, F as is, a as ls, S as ps } from "./sidebar-menu-page-BfPM2fof.js";
4
+ import { C as Ie, D as be, a as De, b as Be, c as Fe, d as ke, e as Me, M as Pe, N as ve, S as Ne, f as fe, g as he, h as xe, T as ye, i as Ue } from "./confirmation-BXRI0wnL.js";
5
+ import { B as Le, I as we, N as He, P as Ae, S as Ge, T as Re, a as Oe, b as Ee, U as Ve, c as Ze, d as je, e as Je, W as _e, f as qe, g as ze, h as Ke, i as Qe, j as Xe, k as Ye, l as $e, m as as, n as es } from "./signature-panel-BhNd436C.js";
6
+ import { S as os } from "./sidebar-menu-Dg6ZTk31.js";
7
+ import { B as rs, C as ns, F as is, a as ls, S as ps } from "./sidebar-menu-page-CuWELCU9.js";
8
8
  import { A as ds, B as ms, F as gs, M as cs, T as Ts, a as Cs } from "./bside-template-C7AQgQ6H.js";
9
9
  import { F as Is, c as bs } from "./format-DE4rFWuD.js";
10
10
  import { I as Bs } from "./image-scaler-1G-JzJVG.js";
@@ -1,5 +1,5 @@
1
- import { A as s, a as t, e as r, o as e, p as i, q as n, r as m, u as l, v as d, z as C, E as S, F as p, H as D, K as u, N as c, O as g, P as F, Q as T, R as P, S as b, T as f, V as w, W as A, X as I, a2 as M, a7 as N, ab as y, al as B, aq as E, ar as L, aE as R, aJ as U, aL as k, aN as v, aY as x } from "./full-page-BJUvF3X2.js";
2
- import { C as q, D as O, a as z, b as G, c as H, d as J, e as K, M as Q, N as V, S as W, f as X, g as Y, h as _, T as j, i as Z } from "./confirmation-Dn9GDvhl.js";
1
+ import { A as s, a as t, e as r, o as e, p as i, q as n, r as m, u as l, v as d, z as C, E as S, F as p, H as D, K as u, N as c, O as g, P as F, Q as T, R as P, S as b, T as f, V as w, W as A, X as I, a2 as M, a7 as N, ab as y, al as B, aq as E, ar as L, aE as R, aJ as U, aL as k, aN as v, aY as x } from "./full-page-DLnHihAW.js";
2
+ import { C as q, D as O, a as z, b as G, c as H, d as J, e as K, M as Q, N as V, S as W, f as X, g as Y, h as _, T as j, i as Z } from "./confirmation-BXRI0wnL.js";
3
3
  export {
4
4
  s as Alert,
5
5
  t as Avatar,
@@ -1,6 +1,6 @@
1
- import { B as s, b as n, C as t, g as r, j as o, D as l, s as i, x as d, y as b, G as u, I as g, Y as v, _ as p, a3 as T, a8 as D, ac as k, ad as N, ae as c, ag as C, ah as B, ai as m, aj as y, ak as S, an as h, as as M, av as W, az as I, aA as U, aB as x, aD as H, aF as P, aG as G, aM as f, aS as L, aT as j, aX as F, a$ as O } from "./full-page-BJUvF3X2.js";
2
- import { B as z, I as A, N as R, P as X, S as Y, T as _, a as $, b as q, U as E, c as J, d as K, e as Q, W as V, f as Z, g as aa, h as ea, i as sa, j as na, k as ta, l as ra, m as oa, n as la } from "./signature-panel-Bu-traik.js";
3
- import { S as da } from "./sidebar-menu-BRTZ4oP4.js";
1
+ import { B as s, b as n, C as t, g as r, j as o, D as l, s as i, x as d, y as b, G as u, I as g, Y as v, _ as p, a3 as T, a8 as D, ac as k, ad as N, ae as c, ag as C, ah as B, ai as m, aj as y, ak as S, an as h, as as M, av as W, az as I, aA as U, aB as x, aD as H, aF as P, aG as G, aM as f, aS as L, aT as j, aX as F, a$ as O } from "./full-page-DLnHihAW.js";
2
+ import { B as z, I as A, N as R, P as X, S as Y, T as _, a as $, b as q, U as E, c as J, d as K, e as Q, W as V, f as Z, g as aa, h as ea, i as sa, j as na, k as ta, l as ra, m as oa, n as la } from "./signature-panel-BhNd436C.js";
3
+ import { S as da } from "./sidebar-menu-Dg6ZTk31.js";
4
4
  export {
5
5
  s as BackButton,
6
6
  n as Backdrop,
package/dist/pages.es.js CHANGED
@@ -1,5 +1,5 @@
1
- import { d as s, Z as g, a9 as n, ao as P } from "./full-page-BJUvF3X2.js";
2
- import { B as o, C as r, F as i, a as t, S as u } from "./sidebar-menu-page-BfPM2fof.js";
1
+ import { d as s, Z as g, a9 as n, ao as P } from "./full-page-DLnHihAW.js";
2
+ import { B as o, C as r, F as i, a as t, S as u } from "./sidebar-menu-page-CuWELCU9.js";
3
3
  export {
4
4
  s as BasicPage,
5
5
  o as BlankPage,
@@ -1,5 +1,5 @@
1
1
  import { Div as r, Header as x, H1 as c } from "@base-framework/atoms";
2
- import { a3 as n } from "./full-page-BJUvF3X2.js";
2
+ import { a3 as n } from "./full-page-DLnHihAW.js";
3
3
  const g = ({ title: l, options: a, class: s = "", mobileBorder: t = !1, sticky: e = !1, topNav: o = null, bottomNav: p = null }) => r({ class: `pb-12 p-4 pt-0 lg:p-6 lg:border-r w-full lg:max-w-[300px] flex-auto flex-col ${s}` }, [
4
4
  o,
5
5
  l && x({ class: "pb-4 md:pb-2 px-6 flex" }, [
@@ -1,7 +1,7 @@
1
1
  import { Div as s } from "@base-framework/atoms";
2
- import { d as a, a9 as i, ao as r, ad as n } from "./full-page-BJUvF3X2.js";
2
+ import { d as a, a9 as i, ao as r, ad as n } from "./full-page-DLnHihAW.js";
3
3
  import { F as l, A as d } from "./bside-template-C7AQgQ6H.js";
4
- import { S as c } from "./sidebar-menu-BRTZ4oP4.js";
4
+ import { S as c } from "./sidebar-menu-Dg6ZTk31.js";
5
5
  class f extends a {
6
6
  /**
7
7
  * This will render the page.
@@ -1,6 +1,6 @@
1
- import { Div as l, Button as b, On as j, Span as T, Nav as f, Ul as p, Section as y, Li as w, Canvas as z } from "@base-framework/atoms";
2
- import { Component as k, Data as U, DateTime as I, router as v, NavLink as S, base as L, Dom as B } from "@base-framework/base";
3
- import { f as C, an as A, aU as u, $ as F } from "./full-page-BJUvF3X2.js";
1
+ import { Div as r, Button as v, On as j, Span as T, Nav as f, Ul as p, Section as y, Li as w, Canvas as z } from "@base-framework/atoms";
2
+ import { Component as k, Data as I, DateTime as U, router as b, NavLink as S, base as L, Dom as B } from "@base-framework/base";
3
+ import { f as C, an as A, aU as u, $ as F } from "./full-page-DLnHihAW.js";
4
4
  import { Icons as D } from "./icons.es.js";
5
5
  import { IntervalTimer as O } from "@base-framework/organisms";
6
6
  class Lt extends k {
@@ -18,7 +18,7 @@ class Lt extends k {
18
18
  * @returns {object}
19
19
  */
20
20
  render() {
21
- return l({ class: this.class || "" }, this.children);
21
+ return r({ class: this.class || "" }, this.children);
22
22
  }
23
23
  }
24
24
  const Y = (s) => {
@@ -64,12 +64,12 @@ const Y = (s) => {
64
64
  for (let n = 1; n <= e; n++)
65
65
  a.push(new Date(s, t, n)), a.length === 7 && (i.push(a), a = []);
66
66
  return a.length > 0 && i.push(a), i;
67
- }, X = (s, t, e) => {
67
+ }, V = (s, t, e) => {
68
68
  const i = /* @__PURE__ */ new Date();
69
69
  return i.getDate() === s && i.getMonth() === t && i.getFullYear() === e;
70
- }, V = ({ day: s, month: t, year: e, weekNumber: i, selectWeek: a }) => {
71
- const n = X(s, t, e);
72
- return b({
70
+ }, X = ({ day: s, month: t, year: e, weekNumber: i, selectWeek: a }) => {
71
+ const n = V(s, t, e);
72
+ return v({
73
73
  text: s || "",
74
74
  disabled: !s,
75
75
  class: `
@@ -80,7 +80,7 @@ const Y = (s) => {
80
80
  click: () => a(i, e)
81
81
  });
82
82
  }, q = (s, t) => {
83
- const e = new Date(s, t, 1).getDay(), i = new Date(s, t + 1, 0).getDate(), a = E(s, t, e), n = Array.from({ length: i }, (c, m) => new Date(s, t, m + 1)), o = (a.length + n.length) % 7, h = o === 0 ? 0 : 7 - o, r = G(s, t, h), d = [...a, ...n, ...r], g = [];
83
+ const e = new Date(s, t, 1).getDay(), i = new Date(s, t + 1, 0).getDate(), a = E(s, t, e), n = Array.from({ length: i }, (c, m) => new Date(s, t, m + 1)), o = (a.length + n.length) % 7, h = o === 0 ? 0 : 7 - o, l = G(s, t, h), d = [...a, ...n, ...l], g = [];
84
84
  for (let c = 0; c < d.length; c += 7) {
85
85
  const m = d.slice(c, c + 7), x = m.find((N) => N) || new Date(s, t, 1), { weekNumber: M, year: $ } = R(x);
86
86
  g.push({
@@ -92,47 +92,47 @@ const Y = (s) => {
92
92
  return g;
93
93
  }, H = ({ selectWeek: s }) => j("month", (t, e, { data: i }) => {
94
94
  const { year: a, month: n, currentDate: o } = i, h = q(a, n);
95
- return l(
95
+ return r(
96
96
  { class: "grid grid-cols-8 gap-1 text-sm px-4 py-2" },
97
97
  [
98
98
  // Header row: "Week" label + day-of-week labels
99
- l({ class: "text-xs text-center col-span-1 text-muted-foreground flex items-center" }, "Week"),
100
- l(
99
+ r({ class: "text-xs text-center col-span-1 text-muted-foreground flex items-center" }, "Week"),
100
+ r(
101
101
  {
102
102
  class: "grid grid-cols-7 col-span-7 text-center text-muted-foreground items-center"
103
103
  },
104
104
  ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map(
105
- (r) => T({ class: "px-1 py-1", text: r })
105
+ (l) => T({ class: "px-1 py-1", text: l })
106
106
  )
107
107
  ),
108
108
  // Render each "week" row
109
109
  ...h.map(
110
- ({ weekNumber: r, days: d, year: g }) => l({
110
+ ({ weekNumber: l, days: d, year: g }) => r({
111
111
  class: "grid grid-cols-8 col-span-8 items-center ring-primary rounded-sm px-1",
112
112
  onSet: ["currentWeek", {
113
- ring: r
113
+ ring: l
114
114
  }]
115
115
  }, [
116
116
  // Left column: ISO week number
117
- l({
117
+ r({
118
118
  class: "font-medium text-center col-span-1 rounded-sm cursor-pointer",
119
- click: () => s(r, g),
119
+ click: () => s(l, g),
120
120
  // If you have a 'currentWeek' state, you can highlight it with 'onSet'
121
121
  onSet: ["currentWeek", {
122
- "text-primary-foreground": r,
123
- "bg-primary": r
122
+ "text-primary-foreground": l,
123
+ "bg-primary": l
124
124
  }],
125
- text: r ? `W${r}` : ""
125
+ text: l ? `W${l}` : ""
126
126
  }),
127
127
  // The 7 cells for each day in the row
128
- l(
128
+ r(
129
129
  { class: "grid grid-cols-7 col-span-7 text-center" },
130
130
  d.map(
131
- (c) => V({
131
+ (c) => X({
132
132
  year: c?.getFullYear() || null,
133
133
  month: c?.getMonth() || null,
134
134
  day: c?.getDate() || null,
135
- weekNumber: r,
135
+ weekNumber: l,
136
136
  selectWeek: s
137
137
  })
138
138
  )
@@ -154,7 +154,7 @@ const Y = (s) => {
154
154
  variant: "icon",
155
155
  icon: s === "Previous" ? D.chevron.single.left : D.chevron.single.right
156
156
  }
157
- ), _ = ({ next: s, previous: t }) => l({ class: "flex flex-auto min-h-12 text-sm font-medium relative justify-center items-center" }, [
157
+ ), _ = ({ next: s, previous: t }) => r({ class: "flex flex-auto min-h-12 text-sm font-medium relative justify-center items-center" }, [
158
158
  T("[[monthName]] [[year]]"),
159
159
  W({
160
160
  label: "Previous",
@@ -181,7 +181,7 @@ class Wt extends k {
181
181
  */
182
182
  setData() {
183
183
  const t = /* @__PURE__ */ new Date(), e = this.selectedWeek || this.calculateCurrentWeek(t), i = P(e, t.getFullYear());
184
- return new U({
184
+ return new I({
185
185
  monthName: this.getMonthName(i.getMonth()),
186
186
  year: i.getFullYear(),
187
187
  month: i.getMonth(),
@@ -218,7 +218,7 @@ class Wt extends k {
218
218
  * @returns {string}
219
219
  */
220
220
  getMonthName(t) {
221
- return I.monthNames[t];
221
+ return U.monthNames[t];
222
222
  }
223
223
  /**
224
224
  * Updates the calendar to show the previous month.
@@ -272,7 +272,7 @@ class Wt extends k {
272
272
  * @returns {object}
273
273
  */
274
274
  render() {
275
- return l({ class: "week-calendar-container border rounded-md p-3" }, [
275
+ return r({ class: "week-calendar-container border rounded-md p-3" }, [
276
276
  _({
277
277
  next: () => this.goToNextMonth(),
278
278
  previous: () => this.goToPreviousMonth()
@@ -318,7 +318,7 @@ class Tt extends k {
318
318
  class: "flex gap-x-4",
319
319
  map: [this.options, (t) => this.addLink(t)],
320
320
  watch: {
321
- value: ["[[path]]", v.data],
321
+ value: ["[[path]]", b.data],
322
322
  callBack: this.updateLinks.bind(this)
323
323
  }
324
324
  })
@@ -331,7 +331,7 @@ class Tt extends k {
331
331
  * @returns {void}
332
332
  */
333
333
  afterSetup() {
334
- const t = v.data.path;
334
+ const t = b.data.path;
335
335
  this.updateLinks(t);
336
336
  }
337
337
  /**
@@ -414,7 +414,7 @@ const Z = (s) => w(
414
414
  dataStateSet: ["selected", ["state", s.value, "active"]]
415
415
  },
416
416
  [
417
- b({
417
+ v({
418
418
  class: "flex flex-auto justify-center items-center px-3 py-1.5 rounded-md",
419
419
  onState: ["selected", { selected: s.value }],
420
420
  click: (t) => s.callBack(s.value)
@@ -439,7 +439,7 @@ class Mt extends u {
439
439
  */
440
440
  render() {
441
441
  const t = this.select.bind(this);
442
- return l({ class: "" }, [
442
+ return r({ class: "" }, [
443
443
  et({
444
444
  class: this.class,
445
445
  options: this.options,
@@ -518,7 +518,7 @@ const st = (s) => w(
518
518
  dataStateSet: ["selected", ["state", s.value, "active"]]
519
519
  },
520
520
  [
521
- b({
521
+ v({
522
522
  class: "flex flex-auto justify-center items-center px-3 py-1.5 rounded-md disabled:opacity-50 disabled:cursor-not-allowed",
523
523
  onState: ["selected", { selected: s.value }],
524
524
  click: (t) => s.callBack(s.value),
@@ -574,14 +574,14 @@ class $t extends u {
574
574
  const nt = (s, t) => new RegExp(`${s}($|/|\\.).*`).test(t), ot = (s, t) => {
575
575
  const e = s.getLinkPath();
576
576
  return s.exact ? t === e : nt(e, t);
577
- }, rt = ({ text: s, href: t, exact: e }) => new S({
577
+ }, lt = ({ text: s, href: t, exact: e }) => new S({
578
578
  text: s,
579
579
  href: t,
580
580
  exact: e,
581
581
  dataSet: ["selected", ["state", !0, "active"]],
582
582
  class: "inline-flex flex-auto items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:shadow-sm"
583
583
  });
584
- class lt extends u {
584
+ class rt extends u {
585
585
  /**
586
586
  * This will declare the props for the compiler.
587
587
  *
@@ -607,7 +607,7 @@ class lt extends u {
607
607
  class: "flex flex-auto flex-row",
608
608
  map: [this.options, (t) => this.addLink(t)],
609
609
  watch: {
610
- value: ["[[path]]", v.data],
610
+ value: ["[[path]]", b.data],
611
611
  callBack: this.updateLinks.bind(this)
612
612
  }
613
613
  })
@@ -619,7 +619,7 @@ class lt extends u {
619
619
  * @returns {void}
620
620
  */
621
621
  afterSetup() {
622
- const t = v.data.path;
622
+ const t = b.data.path;
623
623
  this.updateLinks(t);
624
624
  }
625
625
  /**
@@ -664,7 +664,7 @@ class lt extends u {
664
664
  * @returns {object}
665
665
  */
666
666
  addLink({ label: t, href: e, exact: i }) {
667
- const a = rt({ text: t, href: e, exact: i });
667
+ const a = lt({ text: t, href: e, exact: i });
668
668
  return this.links.push(a), a;
669
669
  }
670
670
  /**
@@ -691,8 +691,8 @@ class Nt extends u {
691
691
  * @returns {object}
692
692
  */
693
693
  render() {
694
- return l({ class: "tab-panel" }, [
695
- new lt({
694
+ return r({ class: "tab-panel" }, [
695
+ new rt({
696
696
  class: this.class,
697
697
  options: this.options
698
698
  }),
@@ -729,7 +729,7 @@ const ct = (s) => w(
729
729
  dataStateSet: ["selected", ["state", s.value, "active"]]
730
730
  },
731
731
  [
732
- b({
732
+ v({
733
733
  class: "flex flex-auto justify-center items-center px-4 py-3 cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed",
734
734
  onState: ["selected", { selected: s.value }],
735
735
  click: (t) => s.callBack(s.value)
@@ -754,7 +754,7 @@ class jt extends u {
754
754
  */
755
755
  render() {
756
756
  const t = this.select.bind(this);
757
- return l({ class: "underlined-button-tab-panel flex flex-auto flex-col" }, [
757
+ return r({ class: "underlined-button-tab-panel flex flex-auto flex-col" }, [
758
758
  dt({
759
759
  class: this.class,
760
760
  options: this.options,
@@ -824,7 +824,7 @@ const ut = (s) => w(
824
824
  dataStateSet: ["selected", ["state", s.value, "active"]]
825
825
  },
826
826
  [
827
- b({
827
+ v({
828
828
  class: "flex flex-auto justify-center items-center px-4 py-3 disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer",
829
829
  onState: ["selected", { selected: s.value }],
830
830
  click: (t) => s.callBack(s.value),
@@ -880,21 +880,21 @@ class zt extends u {
880
880
  const gt = (s, t) => new RegExp(`${s}($|/|\\.).*`).test(t), mt = (s, t) => {
881
881
  const e = s.getLinkPath();
882
882
  return s.exact ? t === e : gt(e, t);
883
- }, vt = ({ text: s, href: t, exact: e }) => new S({
883
+ }, bt = ({ text: s, href: t, exact: e }) => new S({
884
884
  text: s,
885
885
  href: t,
886
886
  exact: e,
887
887
  dataSet: ["selected", ["state", !0, "active"]],
888
888
  class: "relative inline-flex items-center justify-center whitespace-nowrap px-4 py-3 text-sm font-medium text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:text-foreground after:absolute after:bottom-0 after:left-0 after:right-0 after:h-0.5 after:bg-primary after:transition-all after:duration-200 after:scale-x-0 data-[state=active]:after:scale-x-100"
889
889
  });
890
- class bt extends u {
890
+ class vt extends u {
891
891
  /**
892
892
  * This will declare the props for the compiler.
893
893
  *
894
894
  * @returns {void}
895
895
  */
896
896
  declareProps() {
897
- this.options = [], this.class = "", this.onSelect = null;
897
+ this.options = [], this.class = "", this.onSelect = null, this.scrollable = !1;
898
898
  }
899
899
  /**
900
900
  * This will configure the links.
@@ -908,12 +908,13 @@ class bt extends u {
908
908
  * @returns {object}
909
909
  */
910
910
  render() {
911
- return f({ class: `border-b border-border ${this.class}` }, [
911
+ const t = this.scrollable ? "overflow-x-auto no-scrollbar" : "", e = this.scrollable ? "flex flex-row items-center min-w-max" : "flex flex-row items-center";
912
+ return f({ class: `border-b border-border ${t} ${this.class}` }, [
912
913
  p({
913
- class: "flex flex-row items-center",
914
- map: [this.options, (t) => this.addLink(t)],
914
+ class: e,
915
+ map: [this.options, (i) => this.addLink(i)],
915
916
  watch: {
916
- value: ["[[path]]", v.data],
917
+ value: ["[[path]]", b.data],
917
918
  callBack: this.updateLinks.bind(this)
918
919
  }
919
920
  })
@@ -925,7 +926,7 @@ class bt extends u {
925
926
  * @returns {void}
926
927
  */
927
928
  afterSetup() {
928
- const t = v.data.path;
929
+ const t = b.data.path;
929
930
  this.updateLinks(t);
930
931
  }
931
932
  /**
@@ -961,7 +962,7 @@ class bt extends u {
961
962
  * @returns {void}
962
963
  */
963
964
  updateLink(t, e) {
964
- t.update(e);
965
+ t.update(e), e && this.scrollable && t.panel && t.panel.scrollIntoView({ behavior: "smooth", inline: "nearest", block: "nearest" });
965
966
  }
966
967
  /**
967
968
  * This will add a link.
@@ -970,7 +971,7 @@ class bt extends u {
970
971
  * @returns {object}
971
972
  */
972
973
  addLink({ label: t, href: e, exact: i }) {
973
- const a = vt({ text: t, href: e, exact: i });
974
+ const a = bt({ text: t, href: e, exact: i });
974
975
  return this.links.push(a), a;
975
976
  }
976
977
  /**
@@ -982,14 +983,14 @@ class bt extends u {
982
983
  this.links = [];
983
984
  }
984
985
  }
985
- class Ut extends u {
986
+ class It extends u {
986
987
  /**
987
988
  * This will declare the props for the compiler.
988
989
  *
989
990
  * @returns {void}
990
991
  */
991
992
  declareProps() {
992
- this.options = [], this.class = "";
993
+ this.options = [], this.class = "", this.scrollable = !1;
993
994
  }
994
995
  /**
995
996
  * This will render the component.
@@ -997,10 +998,11 @@ class Ut extends u {
997
998
  * @returns {object}
998
999
  */
999
1000
  render() {
1000
- return l({ class: "underlined-tab-panel flex flex-auto flex-col" }, [
1001
- new bt({
1001
+ return r({ class: "underlined-tab-panel flex flex-auto flex-col" }, [
1002
+ new vt({
1002
1003
  class: this.class,
1003
- options: this.options
1004
+ options: this.options,
1005
+ scrollable: this.scrollable
1004
1006
  }),
1005
1007
  y({
1006
1008
  class: "tab-content pt-6 flex flex-auto flex-col",
@@ -1100,8 +1102,8 @@ class kt extends k {
1100
1102
  e = d.clientX, i = d.clientY;
1101
1103
  } else
1102
1104
  e = t.x || t.clientX, i = t.y || t.clientY;
1103
- const h = parseInt((e - o.left) * n), r = parseInt((i - o.top) * n);
1104
- this.mouse.x = h, this.mouse.y = r;
1105
+ const h = parseInt((e - o.left) * n), l = parseInt((i - o.top) * n);
1106
+ this.mouse.x = h, this.mouse.y = l;
1105
1107
  }
1106
1108
  /**
1107
1109
  * Called when the pointer goes down on the canvas.
@@ -1176,12 +1178,12 @@ class kt extends k {
1176
1178
  */
1177
1179
  scale() {
1178
1180
  const t = this.canvas, e = this.container, i = B.getSize(e), a = this.targetSize, n = a.width, o = a.height;
1179
- let h = n + "px", r = o + "px";
1181
+ let h = n + "px", l = o + "px";
1180
1182
  if (this.width = t.width = n, this.height = t.height = o, i.width !== 0 && i.height !== 0) {
1181
1183
  const d = i.width, g = i.height, c = d / n, m = g / o, x = Math.min(c, m);
1182
- h = n * x + "px", r = o * x + "px";
1184
+ h = n * x + "px", l = o * x + "px";
1183
1185
  }
1184
- t.style.width = h, t.style.height = r;
1186
+ t.style.width = h, t.style.height = l;
1185
1187
  }
1186
1188
  /**
1187
1189
  * Main drawing loop. If the mouse is down, adds a line
@@ -1255,7 +1257,7 @@ class kt extends k {
1255
1257
  this.timer.stop(), this.status = "stopped";
1256
1258
  }
1257
1259
  }
1258
- class It extends k {
1260
+ class Ut extends k {
1259
1261
  /**
1260
1262
  * Sets up default properties for the signature panel.
1261
1263
  *
@@ -1271,13 +1273,13 @@ class It extends k {
1271
1273
  * @returns {object} The layout object for the component.
1272
1274
  */
1273
1275
  render() {
1274
- return l({ class: "signature-panel relative flex flex-auto overflow-hidden select-none" }, [
1276
+ return r({ class: "signature-panel relative flex flex-auto overflow-hidden select-none" }, [
1275
1277
  F({
1276
1278
  cache: "hiddenInput",
1277
1279
  required: !0,
1278
1280
  bind: this.path + ".data"
1279
1281
  }),
1280
- l({ class: "absolute top-2 right-2" }, [
1282
+ r({ class: "absolute top-2 right-2" }, [
1281
1283
  C({
1282
1284
  variant: "icon",
1283
1285
  icon: D.circleX,
@@ -1346,16 +1348,16 @@ export {
1346
1348
  Ct as I,
1347
1349
  Tt as N,
1348
1350
  Lt as P,
1349
- It as S,
1351
+ Ut as S,
1350
1352
  Nt as T,
1351
1353
  jt as U,
1352
1354
  Wt as W,
1353
1355
  $t as a,
1354
- lt as b,
1355
- Ut as c,
1356
+ rt as b,
1357
+ It as c,
1356
1358
  zt as d,
1357
- bt as e,
1358
- V as f,
1359
+ vt as e,
1360
+ X as f,
1359
1361
  H as g,
1360
1362
  _ as h,
1361
1363
  R as i,
@@ -23,6 +23,14 @@ export class UnderlinedTabNavigation extends Veil {
23
23
  * @member {function} callBack
24
24
  */
25
25
  onSelect: any;
26
+ /**
27
+ * Whether the tab navigation is scrollable.
28
+ * When true, the nav becomes horizontally scrollable
29
+ * and the active tab scrolls into view.
30
+ * @member {boolean} scrollable
31
+ * @default false
32
+ */
33
+ scrollable: boolean;
26
34
  links: any[];
27
35
  /**
28
36
  * This will render the component.
@@ -19,6 +19,12 @@ export class UnderlinedTab extends Veil {
19
19
  * @default ''
20
20
  */
21
21
  class: string;
22
+ /**
23
+ * Whether the tab navigation is scrollable.
24
+ * @member {boolean} scrollable
25
+ * @default false
26
+ */
27
+ scrollable: boolean;
22
28
  /**
23
29
  * This will render the component.
24
30
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@base-framework/ui",
3
- "version": "1.2.17",
3
+ "version": "1.2.19",
4
4
  "description": "This is a UI package that adds components and atoms that use Tailwind CSS and a theme based on Shadcn.",
5
5
  "main": "./dist/index.es.js",
6
6
  "scripts": {