@economic/taco 14.1.0-EC-87105-test-release.1 → 14.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/charts/components/Pie/util.cjs +1 -1
  2. package/dist/charts/components/Pie/util.cjs.map +1 -1
  3. package/dist/charts/components/Pie/util.js +1 -1
  4. package/dist/charts/components/Pie/util.js.map +1 -1
  5. package/dist/components/Tabs/Tabs.cjs +4 -4
  6. package/dist/components/Tabs/Tabs.cjs.map +1 -1
  7. package/dist/components/Tabs/Tabs.d.ts +2 -2
  8. package/dist/components/Tabs/Tabs.js +3 -3
  9. package/dist/components/Tabs/Tabs.js.map +1 -1
  10. package/dist/components/Tabs/components/{TabPanel.cjs → TabContent.cjs} +5 -4
  11. package/dist/components/Tabs/components/TabContent.cjs.map +1 -0
  12. package/dist/components/Tabs/components/{TabPanel.d.ts → TabContent.d.ts} +1 -1
  13. package/dist/components/Tabs/components/{TabPanel.js → TabContent.js} +5 -4
  14. package/dist/components/Tabs/components/TabContent.js.map +1 -0
  15. package/dist/components/Tabs/components/TabList.cjs +2 -1
  16. package/dist/components/Tabs/components/TabList.cjs.map +1 -1
  17. package/dist/components/Tabs/components/TabList.js +2 -1
  18. package/dist/components/Tabs/components/TabList.js.map +1 -1
  19. package/dist/components/Tabs/components/{Trigger.cjs → TabTrigger.cjs} +3 -2
  20. package/dist/components/Tabs/components/TabTrigger.cjs.map +1 -0
  21. package/dist/components/Tabs/components/{Trigger.js → TabTrigger.js} +3 -2
  22. package/dist/components/Tabs/components/TabTrigger.js.map +1 -0
  23. package/dist/utils/date.cjs +4 -3
  24. package/dist/utils/date.cjs.map +1 -1
  25. package/dist/utils/date.js +4 -3
  26. package/dist/utils/date.js.map +1 -1
  27. package/package.json +4 -4
  28. package/dist/components/Tabs/components/TabPanel.cjs.map +0 -1
  29. package/dist/components/Tabs/components/TabPanel.js.map +0 -1
  30. package/dist/components/Tabs/components/Trigger.cjs.map +0 -1
  31. package/dist/components/Tabs/components/Trigger.js.map +0 -1
  32. /package/dist/components/Tabs/components/{Trigger.d.ts → TabTrigger.d.ts} +0 -0
@@ -31,7 +31,7 @@ function usePieChart(children, options) {
31
31
  const pieProps = {
32
32
  activeIndex,
33
33
  activeShape: (props) => /* @__PURE__ */ React.createElement(ActiveShape, { ...props }),
34
- children: shapes.map((shape, index) => /* @__PURE__ */ React.createElement(RechartsPrimitive__namespace.Cell, { key: `cell-${index}`, color: shape.color, fill: shape.fill })),
34
+ children: shapes.map((shape, index) => /* @__PURE__ */ React.createElement(RechartsPrimitive__namespace.Cell, { key: `${index}-${shape.dataKey}`, color: shape.color, fill: shape.fill })),
35
35
  // data props
36
36
  data: items.filter((item) => !item.isHidden),
37
37
  dataKey: "value",
@@ -1 +1 @@
1
- {"version":3,"file":"util.cjs","sources":["../../../../src/charts/components/Pie/util.tsx"],"sourcesContent":["import React from 'react';\nimport * as RechartsPrimitive from 'recharts';\nimport type { PieSectorDataItem } from 'recharts/types/polar/Pie';\n\nimport type { useChartOptions } from '../useChartData';\nimport { useChart } from '../useChartData';\n\nconst PIE_ACTIVE_WIDTH = 10;\nconst PIE_ACTIVE_WIDTH_OFFSET = 2;\n\nexport function usePieChart<TData extends object>(children: React.ReactNode, options?: useChartOptions) {\n const { items, shapes, activeIndex, setActiveIndex, globalFormatter, toggleItem } = useChart<TData>(children, options);\n const [radius, _setRadius] = React.useState<number>(0);\n\n function setRadius(width: number) {\n _setRadius((width - 2 * (PIE_ACTIVE_WIDTH + PIE_ACTIVE_WIDTH_OFFSET)) / 2);\n }\n\n const pieProps = {\n activeIndex,\n activeShape: (props: PieSectorDataItem) => <ActiveShape {...props} />,\n children: shapes.map((shape, index) => (\n <RechartsPrimitive.Cell key={`cell-${index}`} color={shape.color} fill={shape.fill} />\n )),\n // data props\n data: items.filter(item => !item.isHidden),\n dataKey: 'value',\n nameKey: 'label',\n // style props\n isAnimationActive: false,\n startAngle: 90,\n endAngle: -270,\n stroke: '0',\n labelLine: false,\n outerRadius: radius,\n };\n\n return { pieProps, radius, setRadius, items, activeIndex, setActiveIndex, globalFormatter, toggleItem, shapes };\n}\n\nconst PIE_CHART_HOVER = 10;\nconst PIE_CHART_HOVER_OFFSET = 2;\n\nfunction ActiveShape(props: PieSectorDataItem) {\n const { outerRadius = 0, ...attributes } = props;\n\n return (\n <>\n <RechartsPrimitive.Sector {...attributes} outerRadius={outerRadius} />\n <RechartsPrimitive.Sector\n {...attributes}\n innerRadius={outerRadius + PIE_CHART_HOVER_OFFSET}\n outerRadius={outerRadius + PIE_CHART_HOVER}\n opacity={0.4}\n />\n </>\n );\n}\n"],"names":["useChart","RechartsPrimitive"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,mBAAmB;AACzB,MAAM,0BAA0B;AAEzB,SAAS,YAAkC,UAA2B,SAA2B;AACpG,QAAM,EAAE,OAAO,QAAQ,aAAa,gBAAgB,iBAAiB,eAAeA,aAAAA,SAAgB,UAAU,OAAO;AACrH,QAAM,CAAC,QAAQ,UAAU,IAAI,MAAM,SAAiB,CAAC;AAErD,WAAS,UAAU,OAAe;AAC9B,gBAAY,QAAQ,KAAK,mBAAmB,4BAA4B,CAAC;AAAA,EAC7E;AAEA,QAAM,WAAW;AAAA,IACb;AAAA,IACA,aAAa,CAAC,UAA6B,sBAAA,cAAC,aAAA,EAAa,GAAG,OAAO;AAAA,IACnE,UAAU,OAAO,IAAI,CAAC,OAAO,UACzB,sBAAA,cAACC,6BAAkB,MAAlB,EAAuB,KAAK,QAAQ,KAAK,IAAI,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,CACvF;AAAA;AAAA,IAED,MAAM,MAAM,OAAO,CAAA,SAAQ,CAAC,KAAK,QAAQ;AAAA,IACzC,SAAS;AAAA,IACT,SAAS;AAAA;AAAA,IAET,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,EAAA;AAGjB,SAAO,EAAE,UAAU,QAAQ,WAAW,OAAO,aAAa,gBAAgB,iBAAiB,YAAY,OAAA;AAC3G;AAEA,MAAM,kBAAkB;AACxB,MAAM,yBAAyB;AAE/B,SAAS,YAAY,OAA0B;AAC3C,QAAM,EAAE,cAAc,GAAG,GAAG,eAAe;AAE3C,SACI,sBAAA,cAAA,MAAA,UAAA,0CACKA,6BAAkB,QAAlB,EAA0B,GAAG,YAAY,aAA0B,GACpE,sBAAA;AAAA,IAACA,6BAAkB;AAAA,IAAlB;AAAA,MACI,GAAG;AAAA,MACJ,aAAa,cAAc;AAAA,MAC3B,aAAa,cAAc;AAAA,MAC3B,SAAS;AAAA,IAAA;AAAA,EAAA,CAEjB;AAER;;"}
1
+ {"version":3,"file":"util.cjs","sources":["../../../../src/charts/components/Pie/util.tsx"],"sourcesContent":["import React from 'react';\nimport * as RechartsPrimitive from 'recharts';\nimport type { PieSectorDataItem } from 'recharts/types/polar/Pie';\n\nimport type { useChartOptions } from '../useChartData';\nimport { useChart } from '../useChartData';\n\nconst PIE_ACTIVE_WIDTH = 10;\nconst PIE_ACTIVE_WIDTH_OFFSET = 2;\n\nexport function usePieChart<TData extends object>(children: React.ReactNode, options?: useChartOptions) {\n const { items, shapes, activeIndex, setActiveIndex, globalFormatter, toggleItem } = useChart<TData>(children, options);\n const [radius, _setRadius] = React.useState<number>(0);\n\n function setRadius(width: number) {\n _setRadius((width - 2 * (PIE_ACTIVE_WIDTH + PIE_ACTIVE_WIDTH_OFFSET)) / 2);\n }\n\n const pieProps = {\n activeIndex,\n activeShape: (props: PieSectorDataItem) => <ActiveShape {...props} />,\n children: shapes.map((shape, index) => (\n <RechartsPrimitive.Cell key={`${index}-${shape.dataKey}`} color={shape.color} fill={shape.fill} />\n )),\n // data props\n data: items.filter(item => !item.isHidden),\n dataKey: 'value',\n nameKey: 'label',\n // style props\n isAnimationActive: false,\n startAngle: 90,\n endAngle: -270,\n stroke: '0',\n labelLine: false,\n outerRadius: radius,\n };\n\n return { pieProps, radius, setRadius, items, activeIndex, setActiveIndex, globalFormatter, toggleItem, shapes };\n}\n\nconst PIE_CHART_HOVER = 10;\nconst PIE_CHART_HOVER_OFFSET = 2;\n\nfunction ActiveShape(props: PieSectorDataItem) {\n const { outerRadius = 0, ...attributes } = props;\n\n return (\n <>\n <RechartsPrimitive.Sector {...attributes} outerRadius={outerRadius} />\n <RechartsPrimitive.Sector\n {...attributes}\n innerRadius={outerRadius + PIE_CHART_HOVER_OFFSET}\n outerRadius={outerRadius + PIE_CHART_HOVER}\n opacity={0.4}\n />\n </>\n );\n}\n"],"names":["useChart","RechartsPrimitive"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,mBAAmB;AACzB,MAAM,0BAA0B;AAEzB,SAAS,YAAkC,UAA2B,SAA2B;AACpG,QAAM,EAAE,OAAO,QAAQ,aAAa,gBAAgB,iBAAiB,eAAeA,aAAAA,SAAgB,UAAU,OAAO;AACrH,QAAM,CAAC,QAAQ,UAAU,IAAI,MAAM,SAAiB,CAAC;AAErD,WAAS,UAAU,OAAe;AAC9B,gBAAY,QAAQ,KAAK,mBAAmB,4BAA4B,CAAC;AAAA,EAC7E;AAEA,QAAM,WAAW;AAAA,IACb;AAAA,IACA,aAAa,CAAC,UAA6B,sBAAA,cAAC,aAAA,EAAa,GAAG,OAAO;AAAA,IACnE,UAAU,OAAO,IAAI,CAAC,OAAO,UACzB,sBAAA,cAACC,6BAAkB,MAAlB,EAAuB,KAAK,GAAG,KAAK,IAAI,MAAM,OAAO,IAAI,OAAO,MAAM,OAAO,MAAM,MAAM,KAAA,CAAM,CACnG;AAAA;AAAA,IAED,MAAM,MAAM,OAAO,CAAA,SAAQ,CAAC,KAAK,QAAQ;AAAA,IACzC,SAAS;AAAA,IACT,SAAS;AAAA;AAAA,IAET,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,EAAA;AAGjB,SAAO,EAAE,UAAU,QAAQ,WAAW,OAAO,aAAa,gBAAgB,iBAAiB,YAAY,OAAA;AAC3G;AAEA,MAAM,kBAAkB;AACxB,MAAM,yBAAyB;AAE/B,SAAS,YAAY,OAA0B;AAC3C,QAAM,EAAE,cAAc,GAAG,GAAG,eAAe;AAE3C,SACI,sBAAA,cAAA,MAAA,UAAA,0CACKA,6BAAkB,QAAlB,EAA0B,GAAG,YAAY,aAA0B,GACpE,sBAAA;AAAA,IAACA,6BAAkB;AAAA,IAAlB;AAAA,MACI,GAAG;AAAA,MACJ,aAAa,cAAc;AAAA,MAC3B,aAAa,cAAc;AAAA,MAC3B,SAAS;AAAA,IAAA;AAAA,EAAA,CAEjB;AAER;;"}
@@ -12,7 +12,7 @@ function usePieChart(children, options) {
12
12
  const pieProps = {
13
13
  activeIndex,
14
14
  activeShape: (props) => /* @__PURE__ */ React__default.createElement(ActiveShape, { ...props }),
15
- children: shapes.map((shape, index) => /* @__PURE__ */ React__default.createElement(RechartsPrimitive.Cell, { key: `cell-${index}`, color: shape.color, fill: shape.fill })),
15
+ children: shapes.map((shape, index) => /* @__PURE__ */ React__default.createElement(RechartsPrimitive.Cell, { key: `${index}-${shape.dataKey}`, color: shape.color, fill: shape.fill })),
16
16
  // data props
17
17
  data: items.filter((item) => !item.isHidden),
18
18
  dataKey: "value",
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../../../../src/charts/components/Pie/util.tsx"],"sourcesContent":["import React from 'react';\nimport * as RechartsPrimitive from 'recharts';\nimport type { PieSectorDataItem } from 'recharts/types/polar/Pie';\n\nimport type { useChartOptions } from '../useChartData';\nimport { useChart } from '../useChartData';\n\nconst PIE_ACTIVE_WIDTH = 10;\nconst PIE_ACTIVE_WIDTH_OFFSET = 2;\n\nexport function usePieChart<TData extends object>(children: React.ReactNode, options?: useChartOptions) {\n const { items, shapes, activeIndex, setActiveIndex, globalFormatter, toggleItem } = useChart<TData>(children, options);\n const [radius, _setRadius] = React.useState<number>(0);\n\n function setRadius(width: number) {\n _setRadius((width - 2 * (PIE_ACTIVE_WIDTH + PIE_ACTIVE_WIDTH_OFFSET)) / 2);\n }\n\n const pieProps = {\n activeIndex,\n activeShape: (props: PieSectorDataItem) => <ActiveShape {...props} />,\n children: shapes.map((shape, index) => (\n <RechartsPrimitive.Cell key={`cell-${index}`} color={shape.color} fill={shape.fill} />\n )),\n // data props\n data: items.filter(item => !item.isHidden),\n dataKey: 'value',\n nameKey: 'label',\n // style props\n isAnimationActive: false,\n startAngle: 90,\n endAngle: -270,\n stroke: '0',\n labelLine: false,\n outerRadius: radius,\n };\n\n return { pieProps, radius, setRadius, items, activeIndex, setActiveIndex, globalFormatter, toggleItem, shapes };\n}\n\nconst PIE_CHART_HOVER = 10;\nconst PIE_CHART_HOVER_OFFSET = 2;\n\nfunction ActiveShape(props: PieSectorDataItem) {\n const { outerRadius = 0, ...attributes } = props;\n\n return (\n <>\n <RechartsPrimitive.Sector {...attributes} outerRadius={outerRadius} />\n <RechartsPrimitive.Sector\n {...attributes}\n innerRadius={outerRadius + PIE_CHART_HOVER_OFFSET}\n outerRadius={outerRadius + PIE_CHART_HOVER}\n opacity={0.4}\n />\n </>\n );\n}\n"],"names":["React"],"mappings":";;;AAOA,MAAM,mBAAmB;AACzB,MAAM,0BAA0B;AAEzB,SAAS,YAAkC,UAA2B,SAA2B;AACpG,QAAM,EAAE,OAAO,QAAQ,aAAa,gBAAgB,iBAAiB,eAAe,SAAgB,UAAU,OAAO;AACrH,QAAM,CAAC,QAAQ,UAAU,IAAIA,eAAM,SAAiB,CAAC;AAErD,WAAS,UAAU,OAAe;AAC9B,gBAAY,QAAQ,KAAK,mBAAmB,4BAA4B,CAAC;AAAA,EAC7E;AAEA,QAAM,WAAW;AAAA,IACb;AAAA,IACA,aAAa,CAAC,UAA6BA,+BAAA,cAAC,aAAA,EAAa,GAAG,OAAO;AAAA,IACnE,UAAU,OAAO,IAAI,CAAC,OAAO,UACzBA,+BAAA,cAAC,kBAAkB,MAAlB,EAAuB,KAAK,QAAQ,KAAK,IAAI,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,CACvF;AAAA;AAAA,IAED,MAAM,MAAM,OAAO,CAAA,SAAQ,CAAC,KAAK,QAAQ;AAAA,IACzC,SAAS;AAAA,IACT,SAAS;AAAA;AAAA,IAET,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,EAAA;AAGjB,SAAO,EAAE,UAAU,QAAQ,WAAW,OAAO,aAAa,gBAAgB,iBAAiB,YAAY,OAAA;AAC3G;AAEA,MAAM,kBAAkB;AACxB,MAAM,yBAAyB;AAE/B,SAAS,YAAY,OAA0B;AAC3C,QAAM,EAAE,cAAc,GAAG,GAAG,eAAe;AAE3C,SACIA,+BAAA,cAAAA,eAAA,UAAA,mDACK,kBAAkB,QAAlB,EAA0B,GAAG,YAAY,aAA0B,GACpEA,+BAAA;AAAA,IAAC,kBAAkB;AAAA,IAAlB;AAAA,MACI,GAAG;AAAA,MACJ,aAAa,cAAc;AAAA,MAC3B,aAAa,cAAc;AAAA,MAC3B,SAAS;AAAA,IAAA;AAAA,EAAA,CAEjB;AAER;"}
1
+ {"version":3,"file":"util.js","sources":["../../../../src/charts/components/Pie/util.tsx"],"sourcesContent":["import React from 'react';\nimport * as RechartsPrimitive from 'recharts';\nimport type { PieSectorDataItem } from 'recharts/types/polar/Pie';\n\nimport type { useChartOptions } from '../useChartData';\nimport { useChart } from '../useChartData';\n\nconst PIE_ACTIVE_WIDTH = 10;\nconst PIE_ACTIVE_WIDTH_OFFSET = 2;\n\nexport function usePieChart<TData extends object>(children: React.ReactNode, options?: useChartOptions) {\n const { items, shapes, activeIndex, setActiveIndex, globalFormatter, toggleItem } = useChart<TData>(children, options);\n const [radius, _setRadius] = React.useState<number>(0);\n\n function setRadius(width: number) {\n _setRadius((width - 2 * (PIE_ACTIVE_WIDTH + PIE_ACTIVE_WIDTH_OFFSET)) / 2);\n }\n\n const pieProps = {\n activeIndex,\n activeShape: (props: PieSectorDataItem) => <ActiveShape {...props} />,\n children: shapes.map((shape, index) => (\n <RechartsPrimitive.Cell key={`${index}-${shape.dataKey}`} color={shape.color} fill={shape.fill} />\n )),\n // data props\n data: items.filter(item => !item.isHidden),\n dataKey: 'value',\n nameKey: 'label',\n // style props\n isAnimationActive: false,\n startAngle: 90,\n endAngle: -270,\n stroke: '0',\n labelLine: false,\n outerRadius: radius,\n };\n\n return { pieProps, radius, setRadius, items, activeIndex, setActiveIndex, globalFormatter, toggleItem, shapes };\n}\n\nconst PIE_CHART_HOVER = 10;\nconst PIE_CHART_HOVER_OFFSET = 2;\n\nfunction ActiveShape(props: PieSectorDataItem) {\n const { outerRadius = 0, ...attributes } = props;\n\n return (\n <>\n <RechartsPrimitive.Sector {...attributes} outerRadius={outerRadius} />\n <RechartsPrimitive.Sector\n {...attributes}\n innerRadius={outerRadius + PIE_CHART_HOVER_OFFSET}\n outerRadius={outerRadius + PIE_CHART_HOVER}\n opacity={0.4}\n />\n </>\n );\n}\n"],"names":["React"],"mappings":";;;AAOA,MAAM,mBAAmB;AACzB,MAAM,0BAA0B;AAEzB,SAAS,YAAkC,UAA2B,SAA2B;AACpG,QAAM,EAAE,OAAO,QAAQ,aAAa,gBAAgB,iBAAiB,eAAe,SAAgB,UAAU,OAAO;AACrH,QAAM,CAAC,QAAQ,UAAU,IAAIA,eAAM,SAAiB,CAAC;AAErD,WAAS,UAAU,OAAe;AAC9B,gBAAY,QAAQ,KAAK,mBAAmB,4BAA4B,CAAC;AAAA,EAC7E;AAEA,QAAM,WAAW;AAAA,IACb;AAAA,IACA,aAAa,CAAC,UAA6BA,+BAAA,cAAC,aAAA,EAAa,GAAG,OAAO;AAAA,IACnE,UAAU,OAAO,IAAI,CAAC,OAAO,UACzBA,+BAAA,cAAC,kBAAkB,MAAlB,EAAuB,KAAK,GAAG,KAAK,IAAI,MAAM,OAAO,IAAI,OAAO,MAAM,OAAO,MAAM,MAAM,KAAA,CAAM,CACnG;AAAA;AAAA,IAED,MAAM,MAAM,OAAO,CAAA,SAAQ,CAAC,KAAK,QAAQ;AAAA,IACzC,SAAS;AAAA,IACT,SAAS;AAAA;AAAA,IAET,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,EAAA;AAGjB,SAAO,EAAE,UAAU,QAAQ,WAAW,OAAO,aAAa,gBAAgB,iBAAiB,YAAY,OAAA;AAC3G;AAEA,MAAM,kBAAkB;AACxB,MAAM,yBAAyB;AAE/B,SAAS,YAAY,OAA0B;AAC3C,QAAM,EAAE,cAAc,GAAG,GAAG,eAAe;AAE3C,SACIA,+BAAA,cAAAA,eAAA,UAAA,mDACK,kBAAkB,QAAlB,EAA0B,GAAG,YAAY,aAA0B,GACpEA,+BAAA;AAAA,IAAC,kBAAkB;AAAA,IAAlB;AAAA,MACI,GAAG;AAAA,MACJ,aAAa,cAAc;AAAA,MAC3B,aAAa,cAAc;AAAA,MAC3B,SAAS;AAAA,IAAA;AAAA,EAAA,CAEjB;AAER;"}
@@ -5,9 +5,9 @@ const cn = require("clsx");
5
5
  const React = require("react");
6
6
  const useControlled = require("../../hooks/useControlled.cjs");
7
7
  const useId = require("../../hooks/useId.cjs");
8
+ const TabContent = require("./components/TabContent.cjs");
8
9
  const TabList = require("./components/TabList.cjs");
9
- const TabPanel = require("./components/TabPanel.cjs");
10
- const Trigger = require("./components/Trigger.cjs");
10
+ const TabTrigger = require("./components/TabTrigger.cjs");
11
11
  const Context = require("./Context.cjs");
12
12
  function _interopNamespaceDefault(e) {
13
13
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
@@ -49,7 +49,7 @@ const Tabs = React__namespace.forwardRef(function Tabs2(props, ref) {
49
49
  return /* @__PURE__ */ React__namespace.createElement(Context.TabContext.Provider, { value: context }, /* @__PURE__ */ React__namespace.createElement(focus.FocusScope, null, /* @__PURE__ */ React__namespace.createElement("div", { ...otherProps, className, "data-taco": "tabs", ref }, children)));
50
50
  });
51
51
  Tabs.List = TabList.TabList;
52
- Tabs.Trigger = Trigger.TabTrigger;
53
- Tabs.Content = TabPanel.TabPanel;
52
+ Tabs.Trigger = TabTrigger.TabTrigger;
53
+ Tabs.Content = TabContent.TabContent;
54
54
  exports.Tabs = Tabs;
55
55
  //# sourceMappingURL=Tabs.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.cjs","sources":["../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { FocusScope } from '@react-aria/focus';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport { useControlled } from '@/hooks/useControlled';\nimport { useId } from '@/hooks/useId';\nimport type { Orientation } from '@/types';\n\nimport type { TabListProps } from './components/TabList';\nimport { TabList } from './components/TabList';\nimport type { TabContentProps } from './components/TabPanel';\nimport { TabPanel } from './components/TabPanel';\nimport type { TabTriggerProps } from './components/Trigger';\nimport { TabTrigger } from './components/Trigger';\nimport { TabContext } from './Context';\n\nexport type TabsProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> & {\n /**\n * The controlled value of the tab to activate. Should be used in conjunction with `onChange`.\n */\n id?: string;\n /**\n * Set which tab is selected on mount.\n * This has to be one of the existing ids provided for tabs\n */\n defaultId?: string;\n /**\n * Content should be one or an array of `Tabs.Trigger` components inside `Tabs.List` and then\n * followed by one or an array of `Tabs.Content`.\n * *Note* that there can also be tabs that are rendered conditionally.\n */\n children: React.ReactNode;\n /**\n * Define orientation of tabs.\n * @defaultValue horizontal\n */\n orientation?: Orientation;\n /**\n * Callback that is called when tab is changed.\n */\n onChange?: (id: string) => void;\n};\n\nexport const Tabs = React.forwardRef(function Tabs(props: TabsProps, ref: React.Ref<HTMLDivElement>) {\n const { id, defaultId, children, onChange, orientation = 'horizontal', ...otherProps } = props;\n const className = cn(\n {\n 'flex w-full': orientation === 'vertical',\n },\n props.className\n );\n\n const baseId = useId();\n\n const [activeTabId, setActiveTabId] = useControlled({\n defaultValue: defaultId,\n onChange,\n value: id,\n });\n\n const context = {\n activeTabId,\n baseId,\n onChange: setActiveTabId,\n orientation,\n };\n\n return (\n <TabContext.Provider value={context}>\n <FocusScope>\n <div {...otherProps} className={className} data-taco=\"tabs\" ref={ref}>\n {children}\n </div>\n </FocusScope>\n </TabContext.Provider>\n );\n}) as React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>> & {\n /** Tab list component containing all tab triggers, rendered in a `Tabs` group component */\n List: React.ForwardRefExoticComponent<TabListProps & React.RefAttributes<HTMLDivElement>>;\n /** Tab trigger component rendered in a `Tabs.List` component */\n Trigger: React.ForwardRefExoticComponent<TabTriggerProps & React.RefAttributes<HTMLButtonElement>>;\n /** Tab content component rendered in a `Tabs` group component */\n Content: React.ForwardRefExoticComponent<TabContentProps & React.RefAttributes<HTMLDivElement>>;\n};\n\nTabs.List = TabList;\nTabs.Trigger = TabTrigger;\nTabs.Content = TabPanel;\n"],"names":["React","Tabs","useId","useControlled","TabContext","FocusScope","TabList","TabTrigger","TabPanel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CO,MAAM,OAAOA,iBAAM,WAAW,SAASC,MAAK,OAAkB,KAAgC;AACjG,QAAM,EAAE,IAAI,WAAW,UAAU,UAAU,cAAc,cAAc,GAAG,WAAA,IAAe;AACzF,QAAM,YAAY;AAAA,IACd;AAAA,MACI,eAAe,gBAAgB;AAAA,IAAA;AAAA,IAEnC,MAAM;AAAA,EAAA;AAGV,QAAM,SAASC,MAAAA,MAAA;AAEf,QAAM,CAAC,aAAa,cAAc,IAAIC,4BAAc;AAAA,IAChD,cAAc;AAAA,IACd;AAAA,IACA,OAAO;AAAA,EAAA,CACV;AAED,QAAM,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,EAAA;AAGJ,wDACKC,QAAAA,WAAW,UAAX,EAAoB,OAAO,0DACvBC,kBAAA,MACGL,iCAAA,cAAC,OAAA,EAAK,GAAG,YAAY,WAAsB,aAAU,QAAO,OACvD,QACL,CACJ,CACJ;AAER,CAAC;AASD,KAAK,OAAOM,QAAAA;AACZ,KAAK,UAAUC,QAAAA;AACf,KAAK,UAAUC,SAAAA;;"}
1
+ {"version":3,"file":"Tabs.cjs","sources":["../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { FocusScope } from '@react-aria/focus';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport { useControlled } from '@/hooks/useControlled';\nimport { useId } from '@/hooks/useId';\nimport type { Orientation } from '@/types';\n\nimport type { TabContentProps } from './components/TabContent';\nimport { TabContent } from './components/TabContent';\nimport type { TabListProps } from './components/TabList';\nimport { TabList } from './components/TabList';\nimport type { TabTriggerProps } from './components/TabTrigger';\nimport { TabTrigger } from './components/TabTrigger';\nimport { TabContext } from './Context';\n\nexport type TabsProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> & {\n /**\n * The controlled value of the tab to activate. Should be used in conjunction with `onChange`.\n */\n id?: string;\n /**\n * Set which tab is selected on mount.\n * This has to be one of the existing ids provided for tabs\n */\n defaultId?: string;\n /**\n * Content should be one or an array of `Tabs.Trigger` components inside `Tabs.List` and then\n * followed by one or an array of `Tabs.Content`.\n * *Note* that there can also be tabs that are rendered conditionally.\n */\n children: React.ReactNode;\n /**\n * Define orientation of tabs.\n * @defaultValue horizontal\n */\n orientation?: Orientation;\n /**\n * Callback that is called when tab is changed.\n */\n onChange?: (id: string) => void;\n};\n\nexport const Tabs = React.forwardRef(function Tabs(props: TabsProps, ref: React.Ref<HTMLDivElement>) {\n const { id, defaultId, children, onChange, orientation = 'horizontal', ...otherProps } = props;\n const className = cn(\n {\n 'flex w-full': orientation === 'vertical',\n },\n props.className\n );\n\n const baseId = useId();\n\n const [activeTabId, setActiveTabId] = useControlled({\n defaultValue: defaultId,\n onChange,\n value: id,\n });\n\n const context = {\n activeTabId,\n baseId,\n onChange: setActiveTabId,\n orientation,\n };\n\n return (\n <TabContext.Provider value={context}>\n <FocusScope>\n <div {...otherProps} className={className} data-taco=\"tabs\" ref={ref}>\n {children}\n </div>\n </FocusScope>\n </TabContext.Provider>\n );\n}) as React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>> & {\n /** Tab list component containing all tab triggers, rendered in a `Tabs` group component */\n List: React.ForwardRefExoticComponent<TabListProps & React.RefAttributes<HTMLDivElement>>;\n /** Tab trigger component rendered in a `Tabs.List` component */\n Trigger: React.ForwardRefExoticComponent<TabTriggerProps & React.RefAttributes<HTMLButtonElement>>;\n /** Tab content component rendered in a `Tabs` group component */\n Content: React.ForwardRefExoticComponent<TabContentProps & React.RefAttributes<HTMLDivElement>>;\n};\n\nTabs.List = TabList;\nTabs.Trigger = TabTrigger;\nTabs.Content = TabContent;\n"],"names":["React","Tabs","useId","useControlled","TabContext","FocusScope","TabList","TabTrigger","TabContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CO,MAAM,OAAOA,iBAAM,WAAW,SAASC,MAAK,OAAkB,KAAgC;AACjG,QAAM,EAAE,IAAI,WAAW,UAAU,UAAU,cAAc,cAAc,GAAG,WAAA,IAAe;AACzF,QAAM,YAAY;AAAA,IACd;AAAA,MACI,eAAe,gBAAgB;AAAA,IAAA;AAAA,IAEnC,MAAM;AAAA,EAAA;AAGV,QAAM,SAASC,MAAAA,MAAA;AAEf,QAAM,CAAC,aAAa,cAAc,IAAIC,4BAAc;AAAA,IAChD,cAAc;AAAA,IACd;AAAA,IACA,OAAO;AAAA,EAAA,CACV;AAED,QAAM,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,EAAA;AAGJ,wDACKC,QAAAA,WAAW,UAAX,EAAoB,OAAO,0DACvBC,kBAAA,MACGL,iCAAA,cAAC,OAAA,EAAK,GAAG,YAAY,WAAsB,aAAU,QAAO,OACvD,QACL,CACJ,CACJ;AAER,CAAC;AASD,KAAK,OAAOM,QAAAA;AACZ,KAAK,UAAUC,WAAAA;AACf,KAAK,UAAUC,WAAAA;;"}
@@ -1,7 +1,7 @@
1
1
  import { Orientation } from '../../types';
2
+ import { TabContentProps } from './components/TabContent';
2
3
  import { TabListProps } from './components/TabList';
3
- import { TabContentProps } from './components/TabPanel';
4
- import { TabTriggerProps } from './components/Trigger';
4
+ import { TabTriggerProps } from './components/TabTrigger';
5
5
  import * as React from 'react';
6
6
  export type TabsProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> & {
7
7
  /**
@@ -3,9 +3,9 @@ import cn from "clsx";
3
3
  import * as React from "react";
4
4
  import { useControlled } from "../../hooks/useControlled.js";
5
5
  import { useId } from "../../hooks/useId.js";
6
+ import { TabContent } from "./components/TabContent.js";
6
7
  import { TabList } from "./components/TabList.js";
7
- import { TabPanel } from "./components/TabPanel.js";
8
- import { TabTrigger } from "./components/Trigger.js";
8
+ import { TabTrigger } from "./components/TabTrigger.js";
9
9
  import { TabContext } from "./Context.js";
10
10
  const Tabs = React.forwardRef(function Tabs2(props, ref) {
11
11
  const { id, defaultId, children, onChange, orientation = "horizontal", ...otherProps } = props;
@@ -31,7 +31,7 @@ const Tabs = React.forwardRef(function Tabs2(props, ref) {
31
31
  });
32
32
  Tabs.List = TabList;
33
33
  Tabs.Trigger = TabTrigger;
34
- Tabs.Content = TabPanel;
34
+ Tabs.Content = TabContent;
35
35
  export {
36
36
  Tabs
37
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":["../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { FocusScope } from '@react-aria/focus';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport { useControlled } from '@/hooks/useControlled';\nimport { useId } from '@/hooks/useId';\nimport type { Orientation } from '@/types';\n\nimport type { TabListProps } from './components/TabList';\nimport { TabList } from './components/TabList';\nimport type { TabContentProps } from './components/TabPanel';\nimport { TabPanel } from './components/TabPanel';\nimport type { TabTriggerProps } from './components/Trigger';\nimport { TabTrigger } from './components/Trigger';\nimport { TabContext } from './Context';\n\nexport type TabsProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> & {\n /**\n * The controlled value of the tab to activate. Should be used in conjunction with `onChange`.\n */\n id?: string;\n /**\n * Set which tab is selected on mount.\n * This has to be one of the existing ids provided for tabs\n */\n defaultId?: string;\n /**\n * Content should be one or an array of `Tabs.Trigger` components inside `Tabs.List` and then\n * followed by one or an array of `Tabs.Content`.\n * *Note* that there can also be tabs that are rendered conditionally.\n */\n children: React.ReactNode;\n /**\n * Define orientation of tabs.\n * @defaultValue horizontal\n */\n orientation?: Orientation;\n /**\n * Callback that is called when tab is changed.\n */\n onChange?: (id: string) => void;\n};\n\nexport const Tabs = React.forwardRef(function Tabs(props: TabsProps, ref: React.Ref<HTMLDivElement>) {\n const { id, defaultId, children, onChange, orientation = 'horizontal', ...otherProps } = props;\n const className = cn(\n {\n 'flex w-full': orientation === 'vertical',\n },\n props.className\n );\n\n const baseId = useId();\n\n const [activeTabId, setActiveTabId] = useControlled({\n defaultValue: defaultId,\n onChange,\n value: id,\n });\n\n const context = {\n activeTabId,\n baseId,\n onChange: setActiveTabId,\n orientation,\n };\n\n return (\n <TabContext.Provider value={context}>\n <FocusScope>\n <div {...otherProps} className={className} data-taco=\"tabs\" ref={ref}>\n {children}\n </div>\n </FocusScope>\n </TabContext.Provider>\n );\n}) as React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>> & {\n /** Tab list component containing all tab triggers, rendered in a `Tabs` group component */\n List: React.ForwardRefExoticComponent<TabListProps & React.RefAttributes<HTMLDivElement>>;\n /** Tab trigger component rendered in a `Tabs.List` component */\n Trigger: React.ForwardRefExoticComponent<TabTriggerProps & React.RefAttributes<HTMLButtonElement>>;\n /** Tab content component rendered in a `Tabs` group component */\n Content: React.ForwardRefExoticComponent<TabContentProps & React.RefAttributes<HTMLDivElement>>;\n};\n\nTabs.List = TabList;\nTabs.Trigger = TabTrigger;\nTabs.Content = TabPanel;\n"],"names":["Tabs"],"mappings":";;;;;;;;;AA2CO,MAAM,OAAO,MAAM,WAAW,SAASA,MAAK,OAAkB,KAAgC;AACjG,QAAM,EAAE,IAAI,WAAW,UAAU,UAAU,cAAc,cAAc,GAAG,WAAA,IAAe;AACzF,QAAM,YAAY;AAAA,IACd;AAAA,MACI,eAAe,gBAAgB;AAAA,IAAA;AAAA,IAEnC,MAAM;AAAA,EAAA;AAGV,QAAM,SAAS,MAAA;AAEf,QAAM,CAAC,aAAa,cAAc,IAAI,cAAc;AAAA,IAChD,cAAc;AAAA,IACd;AAAA,IACA,OAAO;AAAA,EAAA,CACV;AAED,QAAM,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,EAAA;AAGJ,6CACK,WAAW,UAAX,EAAoB,OAAO,+CACvB,YAAA,MACG,sBAAA,cAAC,OAAA,EAAK,GAAG,YAAY,WAAsB,aAAU,QAAO,OACvD,QACL,CACJ,CACJ;AAER,CAAC;AASD,KAAK,OAAO;AACZ,KAAK,UAAU;AACf,KAAK,UAAU;"}
1
+ {"version":3,"file":"Tabs.js","sources":["../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { FocusScope } from '@react-aria/focus';\nimport cn from 'clsx';\nimport * as React from 'react';\n\nimport { useControlled } from '@/hooks/useControlled';\nimport { useId } from '@/hooks/useId';\nimport type { Orientation } from '@/types';\n\nimport type { TabContentProps } from './components/TabContent';\nimport { TabContent } from './components/TabContent';\nimport type { TabListProps } from './components/TabList';\nimport { TabList } from './components/TabList';\nimport type { TabTriggerProps } from './components/TabTrigger';\nimport { TabTrigger } from './components/TabTrigger';\nimport { TabContext } from './Context';\n\nexport type TabsProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> & {\n /**\n * The controlled value of the tab to activate. Should be used in conjunction with `onChange`.\n */\n id?: string;\n /**\n * Set which tab is selected on mount.\n * This has to be one of the existing ids provided for tabs\n */\n defaultId?: string;\n /**\n * Content should be one or an array of `Tabs.Trigger` components inside `Tabs.List` and then\n * followed by one or an array of `Tabs.Content`.\n * *Note* that there can also be tabs that are rendered conditionally.\n */\n children: React.ReactNode;\n /**\n * Define orientation of tabs.\n * @defaultValue horizontal\n */\n orientation?: Orientation;\n /**\n * Callback that is called when tab is changed.\n */\n onChange?: (id: string) => void;\n};\n\nexport const Tabs = React.forwardRef(function Tabs(props: TabsProps, ref: React.Ref<HTMLDivElement>) {\n const { id, defaultId, children, onChange, orientation = 'horizontal', ...otherProps } = props;\n const className = cn(\n {\n 'flex w-full': orientation === 'vertical',\n },\n props.className\n );\n\n const baseId = useId();\n\n const [activeTabId, setActiveTabId] = useControlled({\n defaultValue: defaultId,\n onChange,\n value: id,\n });\n\n const context = {\n activeTabId,\n baseId,\n onChange: setActiveTabId,\n orientation,\n };\n\n return (\n <TabContext.Provider value={context}>\n <FocusScope>\n <div {...otherProps} className={className} data-taco=\"tabs\" ref={ref}>\n {children}\n </div>\n </FocusScope>\n </TabContext.Provider>\n );\n}) as React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>> & {\n /** Tab list component containing all tab triggers, rendered in a `Tabs` group component */\n List: React.ForwardRefExoticComponent<TabListProps & React.RefAttributes<HTMLDivElement>>;\n /** Tab trigger component rendered in a `Tabs.List` component */\n Trigger: React.ForwardRefExoticComponent<TabTriggerProps & React.RefAttributes<HTMLButtonElement>>;\n /** Tab content component rendered in a `Tabs` group component */\n Content: React.ForwardRefExoticComponent<TabContentProps & React.RefAttributes<HTMLDivElement>>;\n};\n\nTabs.List = TabList;\nTabs.Trigger = TabTrigger;\nTabs.Content = TabContent;\n"],"names":["Tabs"],"mappings":";;;;;;;;;AA2CO,MAAM,OAAO,MAAM,WAAW,SAASA,MAAK,OAAkB,KAAgC;AACjG,QAAM,EAAE,IAAI,WAAW,UAAU,UAAU,cAAc,cAAc,GAAG,WAAA,IAAe;AACzF,QAAM,YAAY;AAAA,IACd;AAAA,MACI,eAAe,gBAAgB;AAAA,IAAA;AAAA,IAEnC,MAAM;AAAA,EAAA;AAGV,QAAM,SAAS,MAAA;AAEf,QAAM,CAAC,aAAa,cAAc,IAAI,cAAc;AAAA,IAChD,cAAc;AAAA,IACd;AAAA,IACA,OAAO;AAAA,EAAA,CACV;AAED,QAAM,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,EAAA;AAGJ,6CACK,WAAW,UAAX,EAAoB,OAAO,+CACvB,YAAA,MACG,sBAAA,cAAC,OAAA,EAAK,GAAG,YAAY,WAAsB,aAAU,QAAO,OACvD,QACL,CACJ,CACJ;AAER,CAAC;AASD,KAAK,OAAO;AACZ,KAAK,UAAU;AACf,KAAK,UAAU;"}
@@ -4,7 +4,7 @@ const cn = require("clsx");
4
4
  const React = require("react");
5
5
  const Context = require("../Context.cjs");
6
6
  const utils = require("./utils.cjs");
7
- const TabPanel = React.forwardRef(function Tab(props, ref) {
7
+ const TabContent = React.forwardRef(function Tab(props, ref) {
8
8
  const { id, children, forceMount, ...otherProps } = props;
9
9
  const context = React.useContext(Context.TabContext);
10
10
  const className = cn(
@@ -24,10 +24,11 @@ const TabPanel = React.forwardRef(function Tab(props, ref) {
24
24
  "data-state": id === context.activeTabId ? "active" : "inactive",
25
25
  hidden: id !== context.activeTabId,
26
26
  ref,
27
- role: "tabpanel"
27
+ role: "tabpanel",
28
+ "data-taco": "tabs-content"
28
29
  },
29
30
  id === context.activeTabId || forceMount ? children : null
30
31
  );
31
32
  });
32
- exports.TabPanel = TabPanel;
33
- //# sourceMappingURL=TabPanel.cjs.map
33
+ exports.TabContent = TabContent;
34
+ //# sourceMappingURL=TabContent.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabContent.cjs","sources":["../../../../src/components/Tabs/components/TabContent.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { TabContext } from '../Context';\n\nimport { createPanelId, createTriggerId } from './utils';\n\nexport type TabContentProps = React.HTMLAttributes<HTMLDivElement> & {\n /**\n * A unique value that associates the content with a trigger.\n */\n id: string;\n\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n};\n\nexport const TabContent = React.forwardRef(function Tab(props: TabContentProps, ref: React.Ref<HTMLDivElement>) {\n const { id, children, forceMount, ...otherProps } = props;\n\n const context = React.useContext(TabContext);\n\n const className = cn(\n 'outline-none [&[aria-orientation=\"vertical\"]]:grow',\n context?.activeTabId === id ? 'block' : 'hidden',\n props.className\n );\n\n const triggerId = createTriggerId(context.baseId, id);\n const panelId = createPanelId(context.baseId, id);\n\n return (\n <div\n {...otherProps}\n aria-labelledby={triggerId}\n id={panelId}\n className={className}\n data-state={id === context.activeTabId ? 'active' : 'inactive'}\n hidden={id !== context.activeTabId}\n ref={ref}\n role=\"tabpanel\"\n data-taco=\"tabs-content\">\n {id === context.activeTabId || forceMount ? children : null}\n </div>\n );\n});\n"],"names":["TabContext","createTriggerId","createPanelId"],"mappings":";;;;;;AAoBO,MAAM,aAAa,MAAM,WAAW,SAAS,IAAI,OAAwB,KAAgC;AAC5G,QAAM,EAAE,IAAI,UAAU,YAAY,GAAG,eAAe;AAEpD,QAAM,UAAU,MAAM,WAAWA,kBAAU;AAE3C,QAAM,YAAY;AAAA,IACd;AAAA,IACA,SAAS,gBAAgB,KAAK,UAAU;AAAA,IACxC,MAAM;AAAA,EAAA;AAGV,QAAM,YAAYC,MAAAA,gBAAgB,QAAQ,QAAQ,EAAE;AACpD,QAAM,UAAUC,MAAAA,cAAc,QAAQ,QAAQ,EAAE;AAEhD,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,mBAAiB;AAAA,MACjB,IAAI;AAAA,MACJ;AAAA,MACA,cAAY,OAAO,QAAQ,cAAc,WAAW;AAAA,MACpD,QAAQ,OAAO,QAAQ;AAAA,MACvB;AAAA,MACA,MAAK;AAAA,MACL,aAAU;AAAA,IAAA;AAAA,IACT,OAAO,QAAQ,eAAe,aAAa,WAAW;AAAA,EAAA;AAGnE,CAAC;;"}
@@ -10,7 +10,7 @@ export type TabContentProps = React.HTMLAttributes<HTMLDivElement> & {
10
10
  */
11
11
  forceMount?: true;
12
12
  };
13
- export declare const TabPanel: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
13
+ export declare const TabContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
14
14
  /**
15
15
  * A unique value that associates the content with a trigger.
16
16
  */
@@ -2,7 +2,7 @@ import cn from "clsx";
2
2
  import React__default from "react";
3
3
  import { TabContext } from "../Context.js";
4
4
  import { createTriggerId, createPanelId } from "./utils.js";
5
- const TabPanel = React__default.forwardRef(function Tab(props, ref) {
5
+ const TabContent = React__default.forwardRef(function Tab(props, ref) {
6
6
  const { id, children, forceMount, ...otherProps } = props;
7
7
  const context = React__default.useContext(TabContext);
8
8
  const className = cn(
@@ -22,12 +22,13 @@ const TabPanel = React__default.forwardRef(function Tab(props, ref) {
22
22
  "data-state": id === context.activeTabId ? "active" : "inactive",
23
23
  hidden: id !== context.activeTabId,
24
24
  ref,
25
- role: "tabpanel"
25
+ role: "tabpanel",
26
+ "data-taco": "tabs-content"
26
27
  },
27
28
  id === context.activeTabId || forceMount ? children : null
28
29
  );
29
30
  });
30
31
  export {
31
- TabPanel
32
+ TabContent
32
33
  };
33
- //# sourceMappingURL=TabPanel.js.map
34
+ //# sourceMappingURL=TabContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabContent.js","sources":["../../../../src/components/Tabs/components/TabContent.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { TabContext } from '../Context';\n\nimport { createPanelId, createTriggerId } from './utils';\n\nexport type TabContentProps = React.HTMLAttributes<HTMLDivElement> & {\n /**\n * A unique value that associates the content with a trigger.\n */\n id: string;\n\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n};\n\nexport const TabContent = React.forwardRef(function Tab(props: TabContentProps, ref: React.Ref<HTMLDivElement>) {\n const { id, children, forceMount, ...otherProps } = props;\n\n const context = React.useContext(TabContext);\n\n const className = cn(\n 'outline-none [&[aria-orientation=\"vertical\"]]:grow',\n context?.activeTabId === id ? 'block' : 'hidden',\n props.className\n );\n\n const triggerId = createTriggerId(context.baseId, id);\n const panelId = createPanelId(context.baseId, id);\n\n return (\n <div\n {...otherProps}\n aria-labelledby={triggerId}\n id={panelId}\n className={className}\n data-state={id === context.activeTabId ? 'active' : 'inactive'}\n hidden={id !== context.activeTabId}\n ref={ref}\n role=\"tabpanel\"\n data-taco=\"tabs-content\">\n {id === context.activeTabId || forceMount ? children : null}\n </div>\n );\n});\n"],"names":["React"],"mappings":";;;;AAoBO,MAAM,aAAaA,eAAM,WAAW,SAAS,IAAI,OAAwB,KAAgC;AAC5G,QAAM,EAAE,IAAI,UAAU,YAAY,GAAG,eAAe;AAEpD,QAAM,UAAUA,eAAM,WAAW,UAAU;AAE3C,QAAM,YAAY;AAAA,IACd;AAAA,IACA,SAAS,gBAAgB,KAAK,UAAU;AAAA,IACxC,MAAM;AAAA,EAAA;AAGV,QAAM,YAAY,gBAAgB,QAAQ,QAAQ,EAAE;AACpD,QAAM,UAAU,cAAc,QAAQ,QAAQ,EAAE;AAEhD,SACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,mBAAiB;AAAA,MACjB,IAAI;AAAA,MACJ;AAAA,MACA,cAAY,OAAO,QAAQ,cAAc,WAAW;AAAA,MACpD,QAAQ,OAAO,QAAQ;AAAA,MACvB;AAAA,MACA,MAAK;AAAA,MACL,aAAU;AAAA,IAAA;AAAA,IACT,OAAO,QAAQ,eAAe,aAAa,WAAW;AAAA,EAAA;AAGnE,CAAC;"}
@@ -52,7 +52,8 @@ const TabList = React.forwardRef(function Tab(props, ref) {
52
52
  role: "tablist",
53
53
  className,
54
54
  ref,
55
- onKeyDown: handleKeyDown
55
+ onKeyDown: handleKeyDown,
56
+ "data-taco": "tabs-list"
56
57
  },
57
58
  /* @__PURE__ */ React.createElement(
58
59
  OverflowGroup.OverflowGroup,
@@ -1 +1 @@
1
- {"version":3,"file":"TabList.cjs","sources":["../../../../src/components/Tabs/components/TabList.tsx"],"sourcesContent":["import { useFocusManager } from '@react-aria/focus';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { LegacyButton, OverflowGroup } from '@/components';\n\nimport { TabContext } from '../Context';\n\nexport type TabListProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst focusManagerOptions = {\n wrap: true,\n tabbable: false,\n accept: (element: Element) => {\n return element.getAttribute('role') === 'tab';\n },\n};\n\nexport const TabList = React.forwardRef(function Tab(props: TabListProps, ref: React.Ref<HTMLDivElement>) {\n const { children, ...otherProps } = props;\n const className = cn(\n 'm-0 mb-4 flex flex-row border-gray-200 print:hidden',\n 'aria-orientation-horizontal:border-b',\n 'aria-orientation-vertical:m-0 aria-orientation-vertical:mr-4 aria-orientation-vertical:flex-col aria-orientation-vertical:border-r',\n props.className\n );\n\n const context = React.useContext(TabContext);\n const focusManager = useFocusManager();\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (context.orientation === 'horizontal') {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n focusManager?.focusNext(focusManagerOptions);\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n focusManager?.focusPrevious(focusManagerOptions);\n }\n } else if (context.orientation === 'vertical') {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n focusManager?.focusPrevious(focusManagerOptions);\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n focusManager?.focusNext(focusManagerOptions);\n }\n }\n };\n\n return (\n <div\n {...otherProps}\n aria-orientation={context?.orientation}\n role=\"tablist\"\n className={className}\n ref={ref}\n onKeyDown={handleKeyDown}>\n <OverflowGroup\n wrapChild\n className='w-full [[aria-orientation=\"vertical\"]_&]:flex-col'\n moreButton={(text: string) => <LegacyButton>{text}</LegacyButton>}>\n {React.Children.toArray(children).filter(child => {\n if (React.isValidElement<{ hidden?: boolean }>(child)) {\n return !child.props.hidden;\n }\n\n return true;\n })}\n </OverflowGroup>\n </div>\n );\n});\n"],"names":["TabContext","useFocusManager","OverflowGroup","LegacyButton"],"mappings":";;;;;;;;AAUA,MAAM,sBAAsB;AAAA,EACxB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQ,CAAC,YAAqB;AAC1B,WAAO,QAAQ,aAAa,MAAM,MAAM;AAAA,EAC5C;AACJ;AAEO,MAAM,UAAU,MAAM,WAAW,SAAS,IAAI,OAAqB,KAAgC;AACtG,QAAM,EAAE,UAAU,GAAG,WAAA,IAAe;AACpC,QAAM,YAAY;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EAAA;AAGV,QAAM,UAAU,MAAM,WAAWA,kBAAU;AAC3C,QAAM,eAAeC,MAAAA,gBAAA;AAErB,QAAM,gBAAgB,CAAC,UAA+B;AAClD,QAAI,QAAQ,gBAAgB,cAAc;AACtC,UAAI,MAAM,QAAQ,cAAc;AAC5B,cAAM,eAAA;AACN,sBAAc,UAAU,mBAAmB;AAAA,MAC/C;AAEA,UAAI,MAAM,QAAQ,aAAa;AAC3B,cAAM,eAAA;AACN,sBAAc,cAAc,mBAAmB;AAAA,MACnD;AAAA,IACJ,WAAW,QAAQ,gBAAgB,YAAY;AAC3C,UAAI,MAAM,QAAQ,WAAW;AACzB,cAAM,eAAA;AACN,sBAAc,cAAc,mBAAmB;AAAA,MACnD;AAEA,UAAI,MAAM,QAAQ,aAAa;AAC3B,cAAM,eAAA;AACN,sBAAc,UAAU,mBAAmB;AAAA,MAC/C;AAAA,IACJ;AAAA,EACJ;AAEA,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,oBAAkB,SAAS;AAAA,MAC3B,MAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,WAAW;AAAA,IAAA;AAAA,IACX,sBAAA;AAAA,MAACC,cAAAA;AAAAA,MAAA;AAAA,QACG,WAAS;AAAA,QACT,WAAU;AAAA,QACV,YAAY,CAAC,SAAiB,sBAAA,cAACC,OAAAA,oBAAc,IAAK;AAAA,MAAA;AAAA,MACjD,MAAM,SAAS,QAAQ,QAAQ,EAAE,OAAO,CAAA,UAAS;AAC9C,YAAI,MAAM,eAAqC,KAAK,GAAG;AACnD,iBAAO,CAAC,MAAM,MAAM;AAAA,QACxB;AAEA,eAAO;AAAA,MACX,CAAC;AAAA,IAAA;AAAA,EACL;AAGZ,CAAC;;"}
1
+ {"version":3,"file":"TabList.cjs","sources":["../../../../src/components/Tabs/components/TabList.tsx"],"sourcesContent":["import { useFocusManager } from '@react-aria/focus';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { LegacyButton, OverflowGroup } from '@/components';\n\nimport { TabContext } from '../Context';\n\nexport type TabListProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst focusManagerOptions = {\n wrap: true,\n tabbable: false,\n accept: (element: Element) => {\n return element.getAttribute('role') === 'tab';\n },\n};\n\nexport const TabList = React.forwardRef(function Tab(props: TabListProps, ref: React.Ref<HTMLDivElement>) {\n const { children, ...otherProps } = props;\n const className = cn(\n 'm-0 mb-4 flex flex-row border-gray-200 print:hidden',\n 'aria-orientation-horizontal:border-b',\n 'aria-orientation-vertical:m-0 aria-orientation-vertical:mr-4 aria-orientation-vertical:flex-col aria-orientation-vertical:border-r',\n props.className\n );\n\n const context = React.useContext(TabContext);\n const focusManager = useFocusManager();\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (context.orientation === 'horizontal') {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n focusManager?.focusNext(focusManagerOptions);\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n focusManager?.focusPrevious(focusManagerOptions);\n }\n } else if (context.orientation === 'vertical') {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n focusManager?.focusPrevious(focusManagerOptions);\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n focusManager?.focusNext(focusManagerOptions);\n }\n }\n };\n\n return (\n <div\n {...otherProps}\n aria-orientation={context?.orientation}\n role=\"tablist\"\n className={className}\n ref={ref}\n onKeyDown={handleKeyDown}\n data-taco=\"tabs-list\">\n <OverflowGroup\n wrapChild\n className='w-full [[aria-orientation=\"vertical\"]_&]:flex-col'\n moreButton={(text: string) => <LegacyButton>{text}</LegacyButton>}>\n {React.Children.toArray(children).filter(child => {\n if (React.isValidElement<{ hidden?: boolean }>(child)) {\n return !child.props.hidden;\n }\n\n return true;\n })}\n </OverflowGroup>\n </div>\n );\n});\n"],"names":["TabContext","useFocusManager","OverflowGroup","LegacyButton"],"mappings":";;;;;;;;AAUA,MAAM,sBAAsB;AAAA,EACxB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQ,CAAC,YAAqB;AAC1B,WAAO,QAAQ,aAAa,MAAM,MAAM;AAAA,EAC5C;AACJ;AAEO,MAAM,UAAU,MAAM,WAAW,SAAS,IAAI,OAAqB,KAAgC;AACtG,QAAM,EAAE,UAAU,GAAG,WAAA,IAAe;AACpC,QAAM,YAAY;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EAAA;AAGV,QAAM,UAAU,MAAM,WAAWA,kBAAU;AAC3C,QAAM,eAAeC,MAAAA,gBAAA;AAErB,QAAM,gBAAgB,CAAC,UAA+B;AAClD,QAAI,QAAQ,gBAAgB,cAAc;AACtC,UAAI,MAAM,QAAQ,cAAc;AAC5B,cAAM,eAAA;AACN,sBAAc,UAAU,mBAAmB;AAAA,MAC/C;AAEA,UAAI,MAAM,QAAQ,aAAa;AAC3B,cAAM,eAAA;AACN,sBAAc,cAAc,mBAAmB;AAAA,MACnD;AAAA,IACJ,WAAW,QAAQ,gBAAgB,YAAY;AAC3C,UAAI,MAAM,QAAQ,WAAW;AACzB,cAAM,eAAA;AACN,sBAAc,cAAc,mBAAmB;AAAA,MACnD;AAEA,UAAI,MAAM,QAAQ,aAAa;AAC3B,cAAM,eAAA;AACN,sBAAc,UAAU,mBAAmB;AAAA,MAC/C;AAAA,IACJ;AAAA,EACJ;AAEA,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,oBAAkB,SAAS;AAAA,MAC3B,MAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,aAAU;AAAA,IAAA;AAAA,IACV,sBAAA;AAAA,MAACC,cAAAA;AAAAA,MAAA;AAAA,QACG,WAAS;AAAA,QACT,WAAU;AAAA,QACV,YAAY,CAAC,SAAiB,sBAAA,cAACC,OAAAA,oBAAc,IAAK;AAAA,MAAA;AAAA,MACjD,MAAM,SAAS,QAAQ,QAAQ,EAAE,OAAO,CAAA,UAAS;AAC9C,YAAI,MAAM,eAAqC,KAAK,GAAG;AACnD,iBAAO,CAAC,MAAM,MAAM;AAAA,QACxB;AAEA,eAAO;AAAA,MACX,CAAC;AAAA,IAAA;AAAA,EACL;AAGZ,CAAC;;"}
@@ -50,7 +50,8 @@ const TabList = React__default.forwardRef(function Tab(props, ref) {
50
50
  role: "tablist",
51
51
  className,
52
52
  ref,
53
- onKeyDown: handleKeyDown
53
+ onKeyDown: handleKeyDown,
54
+ "data-taco": "tabs-list"
54
55
  },
55
56
  /* @__PURE__ */ React__default.createElement(
56
57
  OverflowGroup,
@@ -1 +1 @@
1
- {"version":3,"file":"TabList.js","sources":["../../../../src/components/Tabs/components/TabList.tsx"],"sourcesContent":["import { useFocusManager } from '@react-aria/focus';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { LegacyButton, OverflowGroup } from '@/components';\n\nimport { TabContext } from '../Context';\n\nexport type TabListProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst focusManagerOptions = {\n wrap: true,\n tabbable: false,\n accept: (element: Element) => {\n return element.getAttribute('role') === 'tab';\n },\n};\n\nexport const TabList = React.forwardRef(function Tab(props: TabListProps, ref: React.Ref<HTMLDivElement>) {\n const { children, ...otherProps } = props;\n const className = cn(\n 'm-0 mb-4 flex flex-row border-gray-200 print:hidden',\n 'aria-orientation-horizontal:border-b',\n 'aria-orientation-vertical:m-0 aria-orientation-vertical:mr-4 aria-orientation-vertical:flex-col aria-orientation-vertical:border-r',\n props.className\n );\n\n const context = React.useContext(TabContext);\n const focusManager = useFocusManager();\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (context.orientation === 'horizontal') {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n focusManager?.focusNext(focusManagerOptions);\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n focusManager?.focusPrevious(focusManagerOptions);\n }\n } else if (context.orientation === 'vertical') {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n focusManager?.focusPrevious(focusManagerOptions);\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n focusManager?.focusNext(focusManagerOptions);\n }\n }\n };\n\n return (\n <div\n {...otherProps}\n aria-orientation={context?.orientation}\n role=\"tablist\"\n className={className}\n ref={ref}\n onKeyDown={handleKeyDown}>\n <OverflowGroup\n wrapChild\n className='w-full [[aria-orientation=\"vertical\"]_&]:flex-col'\n moreButton={(text: string) => <LegacyButton>{text}</LegacyButton>}>\n {React.Children.toArray(children).filter(child => {\n if (React.isValidElement<{ hidden?: boolean }>(child)) {\n return !child.props.hidden;\n }\n\n return true;\n })}\n </OverflowGroup>\n </div>\n );\n});\n"],"names":["React"],"mappings":";;;;;;AAUA,MAAM,sBAAsB;AAAA,EACxB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQ,CAAC,YAAqB;AAC1B,WAAO,QAAQ,aAAa,MAAM,MAAM;AAAA,EAC5C;AACJ;AAEO,MAAM,UAAUA,eAAM,WAAW,SAAS,IAAI,OAAqB,KAAgC;AACtG,QAAM,EAAE,UAAU,GAAG,WAAA,IAAe;AACpC,QAAM,YAAY;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EAAA;AAGV,QAAM,UAAUA,eAAM,WAAW,UAAU;AAC3C,QAAM,eAAe,gBAAA;AAErB,QAAM,gBAAgB,CAAC,UAA+B;AAClD,QAAI,QAAQ,gBAAgB,cAAc;AACtC,UAAI,MAAM,QAAQ,cAAc;AAC5B,cAAM,eAAA;AACN,sBAAc,UAAU,mBAAmB;AAAA,MAC/C;AAEA,UAAI,MAAM,QAAQ,aAAa;AAC3B,cAAM,eAAA;AACN,sBAAc,cAAc,mBAAmB;AAAA,MACnD;AAAA,IACJ,WAAW,QAAQ,gBAAgB,YAAY;AAC3C,UAAI,MAAM,QAAQ,WAAW;AACzB,cAAM,eAAA;AACN,sBAAc,cAAc,mBAAmB;AAAA,MACnD;AAEA,UAAI,MAAM,QAAQ,aAAa;AAC3B,cAAM,eAAA;AACN,sBAAc,UAAU,mBAAmB;AAAA,MAC/C;AAAA,IACJ;AAAA,EACJ;AAEA,SACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,oBAAkB,SAAS;AAAA,MAC3B,MAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,WAAW;AAAA,IAAA;AAAA,IACXA,+BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAS;AAAA,QACT,WAAU;AAAA,QACV,YAAY,CAAC,SAAiBA,+BAAA,cAAC,oBAAc,IAAK;AAAA,MAAA;AAAA,MACjDA,eAAM,SAAS,QAAQ,QAAQ,EAAE,OAAO,CAAA,UAAS;AAC9C,YAAIA,eAAM,eAAqC,KAAK,GAAG;AACnD,iBAAO,CAAC,MAAM,MAAM;AAAA,QACxB;AAEA,eAAO;AAAA,MACX,CAAC;AAAA,IAAA;AAAA,EACL;AAGZ,CAAC;"}
1
+ {"version":3,"file":"TabList.js","sources":["../../../../src/components/Tabs/components/TabList.tsx"],"sourcesContent":["import { useFocusManager } from '@react-aria/focus';\nimport cn from 'clsx';\nimport React from 'react';\n\nimport { LegacyButton, OverflowGroup } from '@/components';\n\nimport { TabContext } from '../Context';\n\nexport type TabListProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst focusManagerOptions = {\n wrap: true,\n tabbable: false,\n accept: (element: Element) => {\n return element.getAttribute('role') === 'tab';\n },\n};\n\nexport const TabList = React.forwardRef(function Tab(props: TabListProps, ref: React.Ref<HTMLDivElement>) {\n const { children, ...otherProps } = props;\n const className = cn(\n 'm-0 mb-4 flex flex-row border-gray-200 print:hidden',\n 'aria-orientation-horizontal:border-b',\n 'aria-orientation-vertical:m-0 aria-orientation-vertical:mr-4 aria-orientation-vertical:flex-col aria-orientation-vertical:border-r',\n props.className\n );\n\n const context = React.useContext(TabContext);\n const focusManager = useFocusManager();\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (context.orientation === 'horizontal') {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n focusManager?.focusNext(focusManagerOptions);\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n focusManager?.focusPrevious(focusManagerOptions);\n }\n } else if (context.orientation === 'vertical') {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n focusManager?.focusPrevious(focusManagerOptions);\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n focusManager?.focusNext(focusManagerOptions);\n }\n }\n };\n\n return (\n <div\n {...otherProps}\n aria-orientation={context?.orientation}\n role=\"tablist\"\n className={className}\n ref={ref}\n onKeyDown={handleKeyDown}\n data-taco=\"tabs-list\">\n <OverflowGroup\n wrapChild\n className='w-full [[aria-orientation=\"vertical\"]_&]:flex-col'\n moreButton={(text: string) => <LegacyButton>{text}</LegacyButton>}>\n {React.Children.toArray(children).filter(child => {\n if (React.isValidElement<{ hidden?: boolean }>(child)) {\n return !child.props.hidden;\n }\n\n return true;\n })}\n </OverflowGroup>\n </div>\n );\n});\n"],"names":["React"],"mappings":";;;;;;AAUA,MAAM,sBAAsB;AAAA,EACxB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQ,CAAC,YAAqB;AAC1B,WAAO,QAAQ,aAAa,MAAM,MAAM;AAAA,EAC5C;AACJ;AAEO,MAAM,UAAUA,eAAM,WAAW,SAAS,IAAI,OAAqB,KAAgC;AACtG,QAAM,EAAE,UAAU,GAAG,WAAA,IAAe;AACpC,QAAM,YAAY;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EAAA;AAGV,QAAM,UAAUA,eAAM,WAAW,UAAU;AAC3C,QAAM,eAAe,gBAAA;AAErB,QAAM,gBAAgB,CAAC,UAA+B;AAClD,QAAI,QAAQ,gBAAgB,cAAc;AACtC,UAAI,MAAM,QAAQ,cAAc;AAC5B,cAAM,eAAA;AACN,sBAAc,UAAU,mBAAmB;AAAA,MAC/C;AAEA,UAAI,MAAM,QAAQ,aAAa;AAC3B,cAAM,eAAA;AACN,sBAAc,cAAc,mBAAmB;AAAA,MACnD;AAAA,IACJ,WAAW,QAAQ,gBAAgB,YAAY;AAC3C,UAAI,MAAM,QAAQ,WAAW;AACzB,cAAM,eAAA;AACN,sBAAc,cAAc,mBAAmB;AAAA,MACnD;AAEA,UAAI,MAAM,QAAQ,aAAa;AAC3B,cAAM,eAAA;AACN,sBAAc,UAAU,mBAAmB;AAAA,MAC/C;AAAA,IACJ;AAAA,EACJ;AAEA,SACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,oBAAkB,SAAS;AAAA,MAC3B,MAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,aAAU;AAAA,IAAA;AAAA,IACVA,+BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAS;AAAA,QACT,WAAU;AAAA,QACV,YAAY,CAAC,SAAiBA,+BAAA,cAAC,oBAAc,IAAK;AAAA,MAAA;AAAA,MACjDA,eAAM,SAAS,QAAQ,QAAQ,EAAE,OAAO,CAAA,UAAS;AAC9C,YAAIA,eAAM,eAAqC,KAAK,GAAG;AACnD,iBAAO,CAAC,MAAM,MAAM;AAAA,QACxB;AAEA,eAAO;AAAA,MACX,CAAC;AAAA,IAAA;AAAA,EACL;AAGZ,CAAC;"}
@@ -45,7 +45,8 @@ const TabTrigger = React.forwardRef(function Tab(props, forwardedRef) {
45
45
  disabled,
46
46
  onFocus: () => context.onChange(id),
47
47
  ref,
48
- tabIndex: context?.activeTabId === void 0 ? 0 : id === context?.activeTabId ? 0 : -1
48
+ tabIndex: context?.activeTabId === void 0 ? 0 : id === context?.activeTabId ? 0 : -1,
49
+ "data-taco": "tabs-trigger"
49
50
  },
50
51
  /* @__PURE__ */ React.createElement("span", { className: buttonClassName }, children),
51
52
  /* @__PURE__ */ React.createElement("span", { className: activeClassName })
@@ -56,4 +57,4 @@ const TabTrigger = React.forwardRef(function Tab(props, forwardedRef) {
56
57
  return trigger;
57
58
  });
58
59
  exports.TabTrigger = TabTrigger;
59
- //# sourceMappingURL=Trigger.cjs.map
60
+ //# sourceMappingURL=TabTrigger.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabTrigger.cjs","sources":["../../../../src/components/Tabs/components/TabTrigger.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { Tooltip } from '@/components';\nimport { getButtonClasses } from '@/components/LegacyComponents/Button/util';\nimport { useMergedRef } from '@/hooks/useMergedRef';\n\nimport { TabContext } from '../Context';\n\nimport { createPanelId, createTriggerId } from './utils';\n\nexport type TabTriggerProps = React.HTMLAttributes<HTMLButtonElement> & {\n /**\n * A unique value that associates the trigger with a content.\n */\n id: string;\n /**\n * When true, prevents the user from interacting with the tab.\n */\n disabled?: boolean;\n /** A tooltip to show when hovering over the trigger */\n tooltip?: string | React.JSX.Element;\n};\n\nexport const TabTrigger = React.forwardRef(function Tab(props: TabTriggerProps, forwardedRef: React.Ref<HTMLButtonElement>) {\n const { children, id, disabled, tooltip, ...otherProps } = props;\n const context = React.useContext(TabContext);\n const ref = useMergedRef<HTMLButtonElement>(forwardedRef);\n\n const triggerClassName = cn(\n props.className,\n 'group relative p-0.5 outline-none disabled:cursor-not-allowed disabled:text-black/50',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:pb-1',\n // vertical\n '[[aria-orientation=\"vertical\"]_&]:pr-1'\n );\n const buttonClassName = cn(\n getButtonClasses(),\n 'pointer-events-none rounded px-3 group-focus-visible:yt-focus-inset group-enabled:group-hover:bg-gray-100 group-enabled:group-hover:text-black'\n );\n const activeClassName = cn(\n 'pointer-events-none absolute z-[1] hidden bg-blue-500 group-aria-selected:flex',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:bottom-0 [[aria-orientation=\"horizontal\"]_&]:left-0 [[aria-orientation=\"horizontal\"]_&]:right-0 [[aria-orientation=\"horizontal\"]_&]:h-0.5 [[aria-orientation=\"horizontal\"]_&]:rounded-t-sm',\n // vertical\n '[[aria-orientation=\"vertical\"]_&]:bottom-0 [[aria-orientation=\"vertical\"]_&]:right-0 [[aria-orientation=\"vertical\"]_&]:top-0 [[aria-orientation=\"vertical\"]_&]:w-0.5 [[aria-orientation=\"vertical\"]_&]:rounded-l-sm'\n );\n\n const triggerId = createTriggerId(context.baseId, id);\n const panelId = createPanelId(context.baseId, id);\n\n const trigger = (\n <button\n {...otherProps}\n aria-selected={id === context?.activeTabId}\n aria-controls={panelId}\n id={triggerId}\n role=\"tab\"\n type=\"button\"\n className={triggerClassName}\n disabled={disabled}\n onFocus={() => context.onChange(id)}\n ref={ref}\n tabIndex={context?.activeTabId === undefined ? 0 : id === context?.activeTabId ? 0 : -1}\n data-taco=\"tabs-trigger\">\n <span className={buttonClassName}>{children}</span>\n <span className={activeClassName} />\n </button>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{trigger}</Tooltip>;\n }\n\n return trigger;\n});\n"],"names":["TabContext","useMergedRef","getButtonClasses","createTriggerId","createPanelId","Tooltip"],"mappings":";;;;;;;;;AAwBO,MAAM,aAAa,MAAM,WAAW,SAAS,IAAI,OAAwB,cAA4C;AACxH,QAAM,EAAE,UAAU,IAAI,UAAU,SAAS,GAAG,eAAe;AAC3D,QAAM,UAAU,MAAM,WAAWA,kBAAU;AAC3C,QAAM,MAAMC,aAAAA,aAAgC,YAAY;AAExD,QAAM,mBAAmB;AAAA,IACrB,MAAM;AAAA,IACN;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,EAAA;AAEJ,QAAM,kBAAkB;AAAA,IACpBC,sBAAA;AAAA,IACA;AAAA,EAAA;AAEJ,QAAM,kBAAkB;AAAA,IACpB;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,EAAA;AAGJ,QAAM,YAAYC,MAAAA,gBAAgB,QAAQ,QAAQ,EAAE;AACpD,QAAM,UAAUC,MAAAA,cAAc,QAAQ,QAAQ,EAAE;AAEhD,QAAM,UACF,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,iBAAe,OAAO,SAAS;AAAA,MAC/B,iBAAe;AAAA,MACf,IAAI;AAAA,MACJ,MAAK;AAAA,MACL,MAAK;AAAA,MACL,WAAW;AAAA,MACX;AAAA,MACA,SAAS,MAAM,QAAQ,SAAS,EAAE;AAAA,MAClC;AAAA,MACA,UAAU,SAAS,gBAAgB,SAAY,IAAI,OAAO,SAAS,cAAc,IAAI;AAAA,MACrF,aAAU;AAAA,IAAA;AAAA,IACV,sBAAA,cAAC,QAAA,EAAK,WAAW,gBAAA,GAAkB,QAAS;AAAA,IAC5C,sBAAA,cAAC,QAAA,EAAK,WAAW,gBAAA,CAAiB;AAAA,EAAA;AAI1C,MAAI,SAAS;AACT,WAAO,sBAAA,cAACC,QAAAA,SAAA,EAAQ,OAAO,QAAA,GAAU,OAAQ;AAAA,EAC7C;AAEA,SAAO;AACX,CAAC;;"}
@@ -43,7 +43,8 @@ const TabTrigger = React__default.forwardRef(function Tab(props, forwardedRef) {
43
43
  disabled,
44
44
  onFocus: () => context.onChange(id),
45
45
  ref,
46
- tabIndex: context?.activeTabId === void 0 ? 0 : id === context?.activeTabId ? 0 : -1
46
+ tabIndex: context?.activeTabId === void 0 ? 0 : id === context?.activeTabId ? 0 : -1,
47
+ "data-taco": "tabs-trigger"
47
48
  },
48
49
  /* @__PURE__ */ React__default.createElement("span", { className: buttonClassName }, children),
49
50
  /* @__PURE__ */ React__default.createElement("span", { className: activeClassName })
@@ -56,4 +57,4 @@ const TabTrigger = React__default.forwardRef(function Tab(props, forwardedRef) {
56
57
  export {
57
58
  TabTrigger
58
59
  };
59
- //# sourceMappingURL=Trigger.js.map
60
+ //# sourceMappingURL=TabTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabTrigger.js","sources":["../../../../src/components/Tabs/components/TabTrigger.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { Tooltip } from '@/components';\nimport { getButtonClasses } from '@/components/LegacyComponents/Button/util';\nimport { useMergedRef } from '@/hooks/useMergedRef';\n\nimport { TabContext } from '../Context';\n\nimport { createPanelId, createTriggerId } from './utils';\n\nexport type TabTriggerProps = React.HTMLAttributes<HTMLButtonElement> & {\n /**\n * A unique value that associates the trigger with a content.\n */\n id: string;\n /**\n * When true, prevents the user from interacting with the tab.\n */\n disabled?: boolean;\n /** A tooltip to show when hovering over the trigger */\n tooltip?: string | React.JSX.Element;\n};\n\nexport const TabTrigger = React.forwardRef(function Tab(props: TabTriggerProps, forwardedRef: React.Ref<HTMLButtonElement>) {\n const { children, id, disabled, tooltip, ...otherProps } = props;\n const context = React.useContext(TabContext);\n const ref = useMergedRef<HTMLButtonElement>(forwardedRef);\n\n const triggerClassName = cn(\n props.className,\n 'group relative p-0.5 outline-none disabled:cursor-not-allowed disabled:text-black/50',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:pb-1',\n // vertical\n '[[aria-orientation=\"vertical\"]_&]:pr-1'\n );\n const buttonClassName = cn(\n getButtonClasses(),\n 'pointer-events-none rounded px-3 group-focus-visible:yt-focus-inset group-enabled:group-hover:bg-gray-100 group-enabled:group-hover:text-black'\n );\n const activeClassName = cn(\n 'pointer-events-none absolute z-[1] hidden bg-blue-500 group-aria-selected:flex',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:bottom-0 [[aria-orientation=\"horizontal\"]_&]:left-0 [[aria-orientation=\"horizontal\"]_&]:right-0 [[aria-orientation=\"horizontal\"]_&]:h-0.5 [[aria-orientation=\"horizontal\"]_&]:rounded-t-sm',\n // vertical\n '[[aria-orientation=\"vertical\"]_&]:bottom-0 [[aria-orientation=\"vertical\"]_&]:right-0 [[aria-orientation=\"vertical\"]_&]:top-0 [[aria-orientation=\"vertical\"]_&]:w-0.5 [[aria-orientation=\"vertical\"]_&]:rounded-l-sm'\n );\n\n const triggerId = createTriggerId(context.baseId, id);\n const panelId = createPanelId(context.baseId, id);\n\n const trigger = (\n <button\n {...otherProps}\n aria-selected={id === context?.activeTabId}\n aria-controls={panelId}\n id={triggerId}\n role=\"tab\"\n type=\"button\"\n className={triggerClassName}\n disabled={disabled}\n onFocus={() => context.onChange(id)}\n ref={ref}\n tabIndex={context?.activeTabId === undefined ? 0 : id === context?.activeTabId ? 0 : -1}\n data-taco=\"tabs-trigger\">\n <span className={buttonClassName}>{children}</span>\n <span className={activeClassName} />\n </button>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{trigger}</Tooltip>;\n }\n\n return trigger;\n});\n"],"names":["React"],"mappings":";;;;;;;AAwBO,MAAM,aAAaA,eAAM,WAAW,SAAS,IAAI,OAAwB,cAA4C;AACxH,QAAM,EAAE,UAAU,IAAI,UAAU,SAAS,GAAG,eAAe;AAC3D,QAAM,UAAUA,eAAM,WAAW,UAAU;AAC3C,QAAM,MAAM,aAAgC,YAAY;AAExD,QAAM,mBAAmB;AAAA,IACrB,MAAM;AAAA,IACN;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,EAAA;AAEJ,QAAM,kBAAkB;AAAA,IACpB,iBAAA;AAAA,IACA;AAAA,EAAA;AAEJ,QAAM,kBAAkB;AAAA,IACpB;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,EAAA;AAGJ,QAAM,YAAY,gBAAgB,QAAQ,QAAQ,EAAE;AACpD,QAAM,UAAU,cAAc,QAAQ,QAAQ,EAAE;AAEhD,QAAM,UACFA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,iBAAe,OAAO,SAAS;AAAA,MAC/B,iBAAe;AAAA,MACf,IAAI;AAAA,MACJ,MAAK;AAAA,MACL,MAAK;AAAA,MACL,WAAW;AAAA,MACX;AAAA,MACA,SAAS,MAAM,QAAQ,SAAS,EAAE;AAAA,MAClC;AAAA,MACA,UAAU,SAAS,gBAAgB,SAAY,IAAI,OAAO,SAAS,cAAc,IAAI;AAAA,MACrF,aAAU;AAAA,IAAA;AAAA,IACVA,+BAAA,cAAC,QAAA,EAAK,WAAW,gBAAA,GAAkB,QAAS;AAAA,IAC5CA,+BAAA,cAAC,QAAA,EAAK,WAAW,gBAAA,CAAiB;AAAA,EAAA;AAI1C,MAAI,SAAS;AACT,WAAOA,+BAAA,cAAC,SAAA,EAAQ,OAAO,QAAA,GAAU,OAAQ;AAAA,EAC7C;AAEA,SAAO;AACX,CAAC;"}
@@ -57,9 +57,10 @@ const parseFromCustomString = (date = "", mask = "dd.mm.yy", defaultMonth = void
57
57
  month = inputParts[mm];
58
58
  year = getFullYear(inputParts[yy]);
59
59
  }
60
- const parsedDay = Math.trunc(Number(day ?? ""));
61
- const parsedMonth = Math.trunc(Number(month ?? ""));
62
- const parsedYear = Math.trunc(Number(year ?? ""));
60
+ const toNumber = (value) => value ? Math.trunc(Number(value)) : Number.NaN;
61
+ const parsedDay = toNumber(day);
62
+ const parsedMonth = toNumber(month);
63
+ const parsedYear = toNumber(year);
63
64
  const currentDate = /* @__PURE__ */ new Date();
64
65
  return new Date(
65
66
  // Year
@@ -1 +1 @@
1
- {"version":3,"file":"date.cjs","sources":["../../src/utils/date.ts"],"sourcesContent":["import { isDate, isValid } from 'date-fns';\n\nexport const isWeakEqual = (leftDate: Date, rightDate: Date) => {\n return (\n leftDate.getFullYear() === rightDate.getFullYear() &&\n leftDate.getMonth() === rightDate.getMonth() &&\n leftDate.getDate() === rightDate.getDate()\n );\n};\n\nexport function parse(date: string | Date | undefined) {\n let value: Date | undefined;\n\n if (isDate(date)) {\n value = date as Date;\n } else if (typeof date === 'string') {\n value = parseFromISOString(date);\n }\n\n if (!isValid(value)) {\n return undefined;\n }\n\n return value;\n}\n\nexport function format(date: string | Date | undefined, mask = 'dd.mm.yy'): string | undefined {\n if (date === undefined) {\n return undefined;\n }\n\n const value = parse(date);\n\n if (!isValid(value) || value === undefined) {\n return undefined;\n }\n\n const pad = (v: number): string => String(v).padStart(2, '0');\n\n return mask\n .replace('dd', pad(value.getDate()))\n .replace('mm', pad(value.getMonth() + 1))\n .replace('yy', String(value.getFullYear()).slice(2));\n}\n\nexport const parseFromCustomString = (\n date = '',\n mask = 'dd.mm.yy',\n defaultMonth: number | undefined = undefined,\n defaultYear: number | undefined = undefined\n): Date | undefined => {\n if (!date || !date.length) {\n return undefined;\n }\n\n const sanitizedMask = mask.split(/[^dmy]/u);\n const dd = sanitizedMask.findIndex(x => x === 'dd');\n const mm = sanitizedMask.findIndex(x => x === 'mm');\n const yy = sanitizedMask.findIndex(x => x === 'yy' || x === 'yyyy');\n\n let day: string | undefined;\n let month: string | undefined;\n let year: string | undefined;\n\n const getFullYear = (y: string | undefined) => {\n if (y && y.length === 2) {\n const z = Math.trunc(Number(y));\n\n return z > 50 ? `19${y}` : `20${y}`;\n }\n\n return y;\n };\n\n const inputParts = date.split(/\\D/u);\n\n if (inputParts.length === 1 && inputParts[0]) {\n const fullDate = inputParts[0];\n const unseparatedMask = mask.replaceAll(/[^dmy]/gu, '');\n\n day = fullDate.slice(unseparatedMask.indexOf('d'), unseparatedMask.lastIndexOf('d') + 1);\n month = fullDate.slice(unseparatedMask.indexOf('m'), unseparatedMask.lastIndexOf('m') + 1);\n // account for full years\n year = getFullYear(fullDate.slice(unseparatedMask.indexOf('y'), unseparatedMask.lastIndexOf('y') + 3));\n } else {\n day = inputParts[dd];\n month = inputParts[mm];\n year = getFullYear(inputParts[yy]);\n }\n\n const parsedDay = Math.trunc(Number(day ?? ''));\n const parsedMonth = Math.trunc(Number(month ?? ''));\n const parsedYear = Math.trunc(Number(year ?? ''));\n\n const currentDate = new Date();\n\n return new Date(\n // Year\n Object.is(parsedYear, Number.NaN) ? (defaultYear ?? currentDate.getFullYear()) : parsedYear,\n // Month - months are zero based in javascript, so subtract a day\n Object.is(parsedMonth, Number.NaN) ? (defaultMonth ?? currentDate.getMonth()) : parsedMonth - 1,\n // Day\n Object.is(parsedDay, Number.NaN) ? currentDate.getDate() : parsedDay,\n // Hours\n 12,\n // Minutes - set to midday to avoid UTC offset causing dates to be mismatched server side\n 0\n );\n};\n\nexport const parseFromISOString = (date: string): Date | undefined => {\n const tempDate = new Date(date);\n return isValid(tempDate) ? parseFromCustomString(format(tempDate)) : undefined;\n};\n"],"names":["isDate","isValid"],"mappings":"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"}
1
+ {"version":3,"file":"date.cjs","sources":["../../src/utils/date.ts"],"sourcesContent":["import { isDate, isValid } from 'date-fns';\n\nexport const isWeakEqual = (leftDate: Date, rightDate: Date) => {\n return (\n leftDate.getFullYear() === rightDate.getFullYear() &&\n leftDate.getMonth() === rightDate.getMonth() &&\n leftDate.getDate() === rightDate.getDate()\n );\n};\n\nexport function parse(date: string | Date | undefined) {\n let value: Date | undefined;\n\n if (isDate(date)) {\n value = date as Date;\n } else if (typeof date === 'string') {\n value = parseFromISOString(date);\n }\n\n if (!isValid(value)) {\n return undefined;\n }\n\n return value;\n}\n\nexport function format(date: string | Date | undefined, mask = 'dd.mm.yy'): string | undefined {\n if (date === undefined) {\n return undefined;\n }\n\n const value = parse(date);\n\n if (!isValid(value) || value === undefined) {\n return undefined;\n }\n\n const pad = (v: number): string => String(v).padStart(2, '0');\n\n return mask\n .replace('dd', pad(value.getDate()))\n .replace('mm', pad(value.getMonth() + 1))\n .replace('yy', String(value.getFullYear()).slice(2));\n}\n\nexport const parseFromCustomString = (\n date = '',\n mask = 'dd.mm.yy',\n defaultMonth: number | undefined = undefined,\n defaultYear: number | undefined = undefined\n): Date | undefined => {\n if (!date || !date.length) {\n return undefined;\n }\n\n const sanitizedMask = mask.split(/[^dmy]/u);\n const dd = sanitizedMask.findIndex(x => x === 'dd');\n const mm = sanitizedMask.findIndex(x => x === 'mm');\n const yy = sanitizedMask.findIndex(x => x === 'yy' || x === 'yyyy');\n\n let day: string | undefined;\n let month: string | undefined;\n let year: string | undefined;\n\n const getFullYear = (y: string | undefined) => {\n if (y && y.length === 2) {\n const z = Math.trunc(Number(y));\n\n return z > 50 ? `19${y}` : `20${y}`;\n }\n\n return y;\n };\n\n const inputParts = date.split(/\\D/u);\n\n if (inputParts.length === 1 && inputParts[0]) {\n const fullDate = inputParts[0];\n const unseparatedMask = mask.replaceAll(/[^dmy]/gu, '');\n\n day = fullDate.slice(unseparatedMask.indexOf('d'), unseparatedMask.lastIndexOf('d') + 1);\n month = fullDate.slice(unseparatedMask.indexOf('m'), unseparatedMask.lastIndexOf('m') + 1);\n // account for full years\n year = getFullYear(fullDate.slice(unseparatedMask.indexOf('y'), unseparatedMask.lastIndexOf('y') + 3));\n } else {\n day = inputParts[dd];\n month = inputParts[mm];\n year = getFullYear(inputParts[yy]);\n }\n\n // Missing parts must be NaN (not 0, which Number('') gives) so they fall back to the current/default values\n const toNumber = (value: string | undefined) => (value ? Math.trunc(Number(value)) : Number.NaN);\n const parsedDay = toNumber(day);\n const parsedMonth = toNumber(month);\n const parsedYear = toNumber(year);\n\n const currentDate = new Date();\n\n return new Date(\n // Year\n Object.is(parsedYear, Number.NaN) ? (defaultYear ?? currentDate.getFullYear()) : parsedYear,\n // Month - months are zero based in javascript, so subtract a day\n Object.is(parsedMonth, Number.NaN) ? (defaultMonth ?? currentDate.getMonth()) : parsedMonth - 1,\n // Day\n Object.is(parsedDay, Number.NaN) ? currentDate.getDate() : parsedDay,\n // Hours\n 12,\n // Minutes - set to midday to avoid UTC offset causing dates to be mismatched server side\n 0\n );\n};\n\nexport const parseFromISOString = (date: string): Date | undefined => {\n const tempDate = new Date(date);\n return isValid(tempDate) ? parseFromCustomString(format(tempDate)) : undefined;\n};\n"],"names":["isDate","isValid"],"mappings":"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"}
@@ -55,9 +55,10 @@ const parseFromCustomString = (date = "", mask = "dd.mm.yy", defaultMonth = void
55
55
  month = inputParts[mm];
56
56
  year = getFullYear(inputParts[yy]);
57
57
  }
58
- const parsedDay = Math.trunc(Number(day ?? ""));
59
- const parsedMonth = Math.trunc(Number(month ?? ""));
60
- const parsedYear = Math.trunc(Number(year ?? ""));
58
+ const toNumber = (value) => value ? Math.trunc(Number(value)) : Number.NaN;
59
+ const parsedDay = toNumber(day);
60
+ const parsedMonth = toNumber(month);
61
+ const parsedYear = toNumber(year);
61
62
  const currentDate = /* @__PURE__ */ new Date();
62
63
  return new Date(
63
64
  // Year
@@ -1 +1 @@
1
- {"version":3,"file":"date.js","sources":["../../src/utils/date.ts"],"sourcesContent":["import { isDate, isValid } from 'date-fns';\n\nexport const isWeakEqual = (leftDate: Date, rightDate: Date) => {\n return (\n leftDate.getFullYear() === rightDate.getFullYear() &&\n leftDate.getMonth() === rightDate.getMonth() &&\n leftDate.getDate() === rightDate.getDate()\n );\n};\n\nexport function parse(date: string | Date | undefined) {\n let value: Date | undefined;\n\n if (isDate(date)) {\n value = date as Date;\n } else if (typeof date === 'string') {\n value = parseFromISOString(date);\n }\n\n if (!isValid(value)) {\n return undefined;\n }\n\n return value;\n}\n\nexport function format(date: string | Date | undefined, mask = 'dd.mm.yy'): string | undefined {\n if (date === undefined) {\n return undefined;\n }\n\n const value = parse(date);\n\n if (!isValid(value) || value === undefined) {\n return undefined;\n }\n\n const pad = (v: number): string => String(v).padStart(2, '0');\n\n return mask\n .replace('dd', pad(value.getDate()))\n .replace('mm', pad(value.getMonth() + 1))\n .replace('yy', String(value.getFullYear()).slice(2));\n}\n\nexport const parseFromCustomString = (\n date = '',\n mask = 'dd.mm.yy',\n defaultMonth: number | undefined = undefined,\n defaultYear: number | undefined = undefined\n): Date | undefined => {\n if (!date || !date.length) {\n return undefined;\n }\n\n const sanitizedMask = mask.split(/[^dmy]/u);\n const dd = sanitizedMask.findIndex(x => x === 'dd');\n const mm = sanitizedMask.findIndex(x => x === 'mm');\n const yy = sanitizedMask.findIndex(x => x === 'yy' || x === 'yyyy');\n\n let day: string | undefined;\n let month: string | undefined;\n let year: string | undefined;\n\n const getFullYear = (y: string | undefined) => {\n if (y && y.length === 2) {\n const z = Math.trunc(Number(y));\n\n return z > 50 ? `19${y}` : `20${y}`;\n }\n\n return y;\n };\n\n const inputParts = date.split(/\\D/u);\n\n if (inputParts.length === 1 && inputParts[0]) {\n const fullDate = inputParts[0];\n const unseparatedMask = mask.replaceAll(/[^dmy]/gu, '');\n\n day = fullDate.slice(unseparatedMask.indexOf('d'), unseparatedMask.lastIndexOf('d') + 1);\n month = fullDate.slice(unseparatedMask.indexOf('m'), unseparatedMask.lastIndexOf('m') + 1);\n // account for full years\n year = getFullYear(fullDate.slice(unseparatedMask.indexOf('y'), unseparatedMask.lastIndexOf('y') + 3));\n } else {\n day = inputParts[dd];\n month = inputParts[mm];\n year = getFullYear(inputParts[yy]);\n }\n\n const parsedDay = Math.trunc(Number(day ?? ''));\n const parsedMonth = Math.trunc(Number(month ?? ''));\n const parsedYear = Math.trunc(Number(year ?? ''));\n\n const currentDate = new Date();\n\n return new Date(\n // Year\n Object.is(parsedYear, Number.NaN) ? (defaultYear ?? currentDate.getFullYear()) : parsedYear,\n // Month - months are zero based in javascript, so subtract a day\n Object.is(parsedMonth, Number.NaN) ? (defaultMonth ?? currentDate.getMonth()) : parsedMonth - 1,\n // Day\n Object.is(parsedDay, Number.NaN) ? currentDate.getDate() : parsedDay,\n // Hours\n 12,\n // Minutes - set to midday to avoid UTC offset causing dates to be mismatched server side\n 0\n );\n};\n\nexport const parseFromISOString = (date: string): Date | undefined => {\n const tempDate = new Date(date);\n return isValid(tempDate) ? parseFromCustomString(format(tempDate)) : undefined;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date.js","sources":["../../src/utils/date.ts"],"sourcesContent":["import { isDate, isValid } from 'date-fns';\n\nexport const isWeakEqual = (leftDate: Date, rightDate: Date) => {\n return (\n leftDate.getFullYear() === rightDate.getFullYear() &&\n leftDate.getMonth() === rightDate.getMonth() &&\n leftDate.getDate() === rightDate.getDate()\n );\n};\n\nexport function parse(date: string | Date | undefined) {\n let value: Date | undefined;\n\n if (isDate(date)) {\n value = date as Date;\n } else if (typeof date === 'string') {\n value = parseFromISOString(date);\n }\n\n if (!isValid(value)) {\n return undefined;\n }\n\n return value;\n}\n\nexport function format(date: string | Date | undefined, mask = 'dd.mm.yy'): string | undefined {\n if (date === undefined) {\n return undefined;\n }\n\n const value = parse(date);\n\n if (!isValid(value) || value === undefined) {\n return undefined;\n }\n\n const pad = (v: number): string => String(v).padStart(2, '0');\n\n return mask\n .replace('dd', pad(value.getDate()))\n .replace('mm', pad(value.getMonth() + 1))\n .replace('yy', String(value.getFullYear()).slice(2));\n}\n\nexport const parseFromCustomString = (\n date = '',\n mask = 'dd.mm.yy',\n defaultMonth: number | undefined = undefined,\n defaultYear: number | undefined = undefined\n): Date | undefined => {\n if (!date || !date.length) {\n return undefined;\n }\n\n const sanitizedMask = mask.split(/[^dmy]/u);\n const dd = sanitizedMask.findIndex(x => x === 'dd');\n const mm = sanitizedMask.findIndex(x => x === 'mm');\n const yy = sanitizedMask.findIndex(x => x === 'yy' || x === 'yyyy');\n\n let day: string | undefined;\n let month: string | undefined;\n let year: string | undefined;\n\n const getFullYear = (y: string | undefined) => {\n if (y && y.length === 2) {\n const z = Math.trunc(Number(y));\n\n return z > 50 ? `19${y}` : `20${y}`;\n }\n\n return y;\n };\n\n const inputParts = date.split(/\\D/u);\n\n if (inputParts.length === 1 && inputParts[0]) {\n const fullDate = inputParts[0];\n const unseparatedMask = mask.replaceAll(/[^dmy]/gu, '');\n\n day = fullDate.slice(unseparatedMask.indexOf('d'), unseparatedMask.lastIndexOf('d') + 1);\n month = fullDate.slice(unseparatedMask.indexOf('m'), unseparatedMask.lastIndexOf('m') + 1);\n // account for full years\n year = getFullYear(fullDate.slice(unseparatedMask.indexOf('y'), unseparatedMask.lastIndexOf('y') + 3));\n } else {\n day = inputParts[dd];\n month = inputParts[mm];\n year = getFullYear(inputParts[yy]);\n }\n\n // Missing parts must be NaN (not 0, which Number('') gives) so they fall back to the current/default values\n const toNumber = (value: string | undefined) => (value ? Math.trunc(Number(value)) : Number.NaN);\n const parsedDay = toNumber(day);\n const parsedMonth = toNumber(month);\n const parsedYear = toNumber(year);\n\n const currentDate = new Date();\n\n return new Date(\n // Year\n Object.is(parsedYear, Number.NaN) ? (defaultYear ?? currentDate.getFullYear()) : parsedYear,\n // Month - months are zero based in javascript, so subtract a day\n Object.is(parsedMonth, Number.NaN) ? (defaultMonth ?? currentDate.getMonth()) : parsedMonth - 1,\n // Day\n Object.is(parsedDay, Number.NaN) ? currentDate.getDate() : parsedDay,\n // Hours\n 12,\n // Minutes - set to midday to avoid UTC offset causing dates to be mismatched server side\n 0\n );\n};\n\nexport const parseFromISOString = (date: string): Date | undefined => {\n const tempDate = new Date(date);\n return isValid(tempDate) ? parseFromCustomString(format(tempDate)) : undefined;\n};\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@economic/taco",
3
- "version": "14.1.0-EC-87105-test-release.1",
3
+ "version": "14.1.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -47,7 +47,7 @@
47
47
  "@dnd-kit/modifiers": "^9.0.0",
48
48
  "@dnd-kit/sortable": "^10.0.0",
49
49
  "@dnd-kit/utilities": "^3.2.2",
50
- "@economic/taco-tokens": "3.0.3-EC-87105-test-release.0",
50
+ "@economic/taco-tokens": "^3.0.3",
51
51
  "@radix-ui/react-scroll-area": "1.2.10",
52
52
  "@react-aria/focus": "^3.19.0",
53
53
  "@react-aria/interactions": "^3.12.0",
@@ -67,7 +67,7 @@
67
67
  "tailwindcss": ">=3.4.19"
68
68
  },
69
69
  "devDependencies": {
70
- "@economic/taco-rules": "1.1.0-EC-87105-test-release.0",
70
+ "@economic/taco-rules": "^1.1.0",
71
71
  "@oxlint/plugins": "^1.75.0",
72
72
  "@svgr/cli": "^8.1.0",
73
73
  "@testing-library/jest-dom": "^6.9.1",
@@ -95,5 +95,5 @@
95
95
  "optionalDependencies": {
96
96
  "@rollup/rollup-linux-x64-gnu": "^4.63.4"
97
97
  },
98
- "gitHead": "74e9fb61886fc8d58bb8d999b5f7a9060a3be59d"
98
+ "gitHead": "a6870b0b611e53cfb1bba68a072bf09ff35f286c"
99
99
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabPanel.cjs","sources":["../../../../src/components/Tabs/components/TabPanel.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { TabContext } from '../Context';\n\nimport { createPanelId, createTriggerId } from './utils';\n\nexport type TabContentProps = React.HTMLAttributes<HTMLDivElement> & {\n /**\n * A unique value that associates the content with a trigger.\n */\n id: string;\n\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n};\n\nexport const TabPanel = React.forwardRef(function Tab(props: TabContentProps, ref: React.Ref<HTMLDivElement>) {\n const { id, children, forceMount, ...otherProps } = props;\n\n const context = React.useContext(TabContext);\n\n const className = cn(\n 'outline-none [&[aria-orientation=\"vertical\"]]:grow',\n context?.activeTabId === id ? 'block' : 'hidden',\n props.className\n );\n\n const triggerId = createTriggerId(context.baseId, id);\n const panelId = createPanelId(context.baseId, id);\n\n return (\n <div\n {...otherProps}\n aria-labelledby={triggerId}\n id={panelId}\n className={className}\n data-state={id === context.activeTabId ? 'active' : 'inactive'}\n hidden={id !== context.activeTabId}\n ref={ref}\n role=\"tabpanel\">\n {id === context.activeTabId || forceMount ? children : null}\n </div>\n );\n});\n"],"names":["TabContext","createTriggerId","createPanelId"],"mappings":";;;;;;AAoBO,MAAM,WAAW,MAAM,WAAW,SAAS,IAAI,OAAwB,KAAgC;AAC1G,QAAM,EAAE,IAAI,UAAU,YAAY,GAAG,eAAe;AAEpD,QAAM,UAAU,MAAM,WAAWA,kBAAU;AAE3C,QAAM,YAAY;AAAA,IACd;AAAA,IACA,SAAS,gBAAgB,KAAK,UAAU;AAAA,IACxC,MAAM;AAAA,EAAA;AAGV,QAAM,YAAYC,MAAAA,gBAAgB,QAAQ,QAAQ,EAAE;AACpD,QAAM,UAAUC,MAAAA,cAAc,QAAQ,QAAQ,EAAE;AAEhD,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,mBAAiB;AAAA,MACjB,IAAI;AAAA,MACJ;AAAA,MACA,cAAY,OAAO,QAAQ,cAAc,WAAW;AAAA,MACpD,QAAQ,OAAO,QAAQ;AAAA,MACvB;AAAA,MACA,MAAK;AAAA,IAAA;AAAA,IACJ,OAAO,QAAQ,eAAe,aAAa,WAAW;AAAA,EAAA;AAGnE,CAAC;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabPanel.js","sources":["../../../../src/components/Tabs/components/TabPanel.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { TabContext } from '../Context';\n\nimport { createPanelId, createTriggerId } from './utils';\n\nexport type TabContentProps = React.HTMLAttributes<HTMLDivElement> & {\n /**\n * A unique value that associates the content with a trigger.\n */\n id: string;\n\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n};\n\nexport const TabPanel = React.forwardRef(function Tab(props: TabContentProps, ref: React.Ref<HTMLDivElement>) {\n const { id, children, forceMount, ...otherProps } = props;\n\n const context = React.useContext(TabContext);\n\n const className = cn(\n 'outline-none [&[aria-orientation=\"vertical\"]]:grow',\n context?.activeTabId === id ? 'block' : 'hidden',\n props.className\n );\n\n const triggerId = createTriggerId(context.baseId, id);\n const panelId = createPanelId(context.baseId, id);\n\n return (\n <div\n {...otherProps}\n aria-labelledby={triggerId}\n id={panelId}\n className={className}\n data-state={id === context.activeTabId ? 'active' : 'inactive'}\n hidden={id !== context.activeTabId}\n ref={ref}\n role=\"tabpanel\">\n {id === context.activeTabId || forceMount ? children : null}\n </div>\n );\n});\n"],"names":["React"],"mappings":";;;;AAoBO,MAAM,WAAWA,eAAM,WAAW,SAAS,IAAI,OAAwB,KAAgC;AAC1G,QAAM,EAAE,IAAI,UAAU,YAAY,GAAG,eAAe;AAEpD,QAAM,UAAUA,eAAM,WAAW,UAAU;AAE3C,QAAM,YAAY;AAAA,IACd;AAAA,IACA,SAAS,gBAAgB,KAAK,UAAU;AAAA,IACxC,MAAM;AAAA,EAAA;AAGV,QAAM,YAAY,gBAAgB,QAAQ,QAAQ,EAAE;AACpD,QAAM,UAAU,cAAc,QAAQ,QAAQ,EAAE;AAEhD,SACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,mBAAiB;AAAA,MACjB,IAAI;AAAA,MACJ;AAAA,MACA,cAAY,OAAO,QAAQ,cAAc,WAAW;AAAA,MACpD,QAAQ,OAAO,QAAQ;AAAA,MACvB;AAAA,MACA,MAAK;AAAA,IAAA;AAAA,IACJ,OAAO,QAAQ,eAAe,aAAa,WAAW;AAAA,EAAA;AAGnE,CAAC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Trigger.cjs","sources":["../../../../src/components/Tabs/components/Trigger.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { Tooltip } from '@/components';\nimport { getButtonClasses } from '@/components/LegacyComponents/Button/util';\nimport { useMergedRef } from '@/hooks/useMergedRef';\n\nimport { TabContext } from '../Context';\n\nimport { createPanelId, createTriggerId } from './utils';\n\nexport type TabTriggerProps = React.HTMLAttributes<HTMLButtonElement> & {\n /**\n * A unique value that associates the trigger with a content.\n */\n id: string;\n /**\n * When true, prevents the user from interacting with the tab.\n */\n disabled?: boolean;\n /** A tooltip to show when hovering over the trigger */\n tooltip?: string | React.JSX.Element;\n};\n\nexport const TabTrigger = React.forwardRef(function Tab(props: TabTriggerProps, forwardedRef: React.Ref<HTMLButtonElement>) {\n const { children, id, disabled, tooltip, ...otherProps } = props;\n const context = React.useContext(TabContext);\n const ref = useMergedRef<HTMLButtonElement>(forwardedRef);\n\n const triggerClassName = cn(\n props.className,\n 'group relative p-0.5 outline-none disabled:cursor-not-allowed disabled:text-black/50',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:pb-1',\n // vertical\n '[[aria-orientation=\"vertical\"]_&]:pr-1'\n );\n const buttonClassName = cn(\n getButtonClasses(),\n 'pointer-events-none rounded px-3 group-focus-visible:yt-focus-inset group-enabled:group-hover:bg-gray-100 group-enabled:group-hover:text-black'\n );\n const activeClassName = cn(\n 'pointer-events-none absolute z-[1] hidden bg-blue-500 group-aria-selected:flex',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:bottom-0 [[aria-orientation=\"horizontal\"]_&]:left-0 [[aria-orientation=\"horizontal\"]_&]:right-0 [[aria-orientation=\"horizontal\"]_&]:h-0.5 [[aria-orientation=\"horizontal\"]_&]:rounded-t-sm',\n // vertical\n '[[aria-orientation=\"vertical\"]_&]:bottom-0 [[aria-orientation=\"vertical\"]_&]:right-0 [[aria-orientation=\"vertical\"]_&]:top-0 [[aria-orientation=\"vertical\"]_&]:w-0.5 [[aria-orientation=\"vertical\"]_&]:rounded-l-sm'\n );\n\n const triggerId = createTriggerId(context.baseId, id);\n const panelId = createPanelId(context.baseId, id);\n\n const trigger = (\n <button\n {...otherProps}\n aria-selected={id === context?.activeTabId}\n aria-controls={panelId}\n id={triggerId}\n role=\"tab\"\n type=\"button\"\n className={triggerClassName}\n disabled={disabled}\n onFocus={() => context.onChange(id)}\n ref={ref}\n tabIndex={context?.activeTabId === undefined ? 0 : id === context?.activeTabId ? 0 : -1}>\n <span className={buttonClassName}>{children}</span>\n <span className={activeClassName} />\n </button>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{trigger}</Tooltip>;\n }\n\n return trigger;\n});\n"],"names":["TabContext","useMergedRef","getButtonClasses","createTriggerId","createPanelId","Tooltip"],"mappings":";;;;;;;;;AAwBO,MAAM,aAAa,MAAM,WAAW,SAAS,IAAI,OAAwB,cAA4C;AACxH,QAAM,EAAE,UAAU,IAAI,UAAU,SAAS,GAAG,eAAe;AAC3D,QAAM,UAAU,MAAM,WAAWA,kBAAU;AAC3C,QAAM,MAAMC,aAAAA,aAAgC,YAAY;AAExD,QAAM,mBAAmB;AAAA,IACrB,MAAM;AAAA,IACN;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,EAAA;AAEJ,QAAM,kBAAkB;AAAA,IACpBC,sBAAA;AAAA,IACA;AAAA,EAAA;AAEJ,QAAM,kBAAkB;AAAA,IACpB;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,EAAA;AAGJ,QAAM,YAAYC,MAAAA,gBAAgB,QAAQ,QAAQ,EAAE;AACpD,QAAM,UAAUC,MAAAA,cAAc,QAAQ,QAAQ,EAAE;AAEhD,QAAM,UACF,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,iBAAe,OAAO,SAAS;AAAA,MAC/B,iBAAe;AAAA,MACf,IAAI;AAAA,MACJ,MAAK;AAAA,MACL,MAAK;AAAA,MACL,WAAW;AAAA,MACX;AAAA,MACA,SAAS,MAAM,QAAQ,SAAS,EAAE;AAAA,MAClC;AAAA,MACA,UAAU,SAAS,gBAAgB,SAAY,IAAI,OAAO,SAAS,cAAc,IAAI;AAAA,IAAA;AAAA,IACrF,sBAAA,cAAC,QAAA,EAAK,WAAW,gBAAA,GAAkB,QAAS;AAAA,IAC5C,sBAAA,cAAC,QAAA,EAAK,WAAW,gBAAA,CAAiB;AAAA,EAAA;AAI1C,MAAI,SAAS;AACT,WAAO,sBAAA,cAACC,QAAAA,SAAA,EAAQ,OAAO,QAAA,GAAU,OAAQ;AAAA,EAC7C;AAEA,SAAO;AACX,CAAC;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Trigger.js","sources":["../../../../src/components/Tabs/components/Trigger.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\n\nimport { Tooltip } from '@/components';\nimport { getButtonClasses } from '@/components/LegacyComponents/Button/util';\nimport { useMergedRef } from '@/hooks/useMergedRef';\n\nimport { TabContext } from '../Context';\n\nimport { createPanelId, createTriggerId } from './utils';\n\nexport type TabTriggerProps = React.HTMLAttributes<HTMLButtonElement> & {\n /**\n * A unique value that associates the trigger with a content.\n */\n id: string;\n /**\n * When true, prevents the user from interacting with the tab.\n */\n disabled?: boolean;\n /** A tooltip to show when hovering over the trigger */\n tooltip?: string | React.JSX.Element;\n};\n\nexport const TabTrigger = React.forwardRef(function Tab(props: TabTriggerProps, forwardedRef: React.Ref<HTMLButtonElement>) {\n const { children, id, disabled, tooltip, ...otherProps } = props;\n const context = React.useContext(TabContext);\n const ref = useMergedRef<HTMLButtonElement>(forwardedRef);\n\n const triggerClassName = cn(\n props.className,\n 'group relative p-0.5 outline-none disabled:cursor-not-allowed disabled:text-black/50',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:pb-1',\n // vertical\n '[[aria-orientation=\"vertical\"]_&]:pr-1'\n );\n const buttonClassName = cn(\n getButtonClasses(),\n 'pointer-events-none rounded px-3 group-focus-visible:yt-focus-inset group-enabled:group-hover:bg-gray-100 group-enabled:group-hover:text-black'\n );\n const activeClassName = cn(\n 'pointer-events-none absolute z-[1] hidden bg-blue-500 group-aria-selected:flex',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:bottom-0 [[aria-orientation=\"horizontal\"]_&]:left-0 [[aria-orientation=\"horizontal\"]_&]:right-0 [[aria-orientation=\"horizontal\"]_&]:h-0.5 [[aria-orientation=\"horizontal\"]_&]:rounded-t-sm',\n // vertical\n '[[aria-orientation=\"vertical\"]_&]:bottom-0 [[aria-orientation=\"vertical\"]_&]:right-0 [[aria-orientation=\"vertical\"]_&]:top-0 [[aria-orientation=\"vertical\"]_&]:w-0.5 [[aria-orientation=\"vertical\"]_&]:rounded-l-sm'\n );\n\n const triggerId = createTriggerId(context.baseId, id);\n const panelId = createPanelId(context.baseId, id);\n\n const trigger = (\n <button\n {...otherProps}\n aria-selected={id === context?.activeTabId}\n aria-controls={panelId}\n id={triggerId}\n role=\"tab\"\n type=\"button\"\n className={triggerClassName}\n disabled={disabled}\n onFocus={() => context.onChange(id)}\n ref={ref}\n tabIndex={context?.activeTabId === undefined ? 0 : id === context?.activeTabId ? 0 : -1}>\n <span className={buttonClassName}>{children}</span>\n <span className={activeClassName} />\n </button>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{trigger}</Tooltip>;\n }\n\n return trigger;\n});\n"],"names":["React"],"mappings":";;;;;;;AAwBO,MAAM,aAAaA,eAAM,WAAW,SAAS,IAAI,OAAwB,cAA4C;AACxH,QAAM,EAAE,UAAU,IAAI,UAAU,SAAS,GAAG,eAAe;AAC3D,QAAM,UAAUA,eAAM,WAAW,UAAU;AAC3C,QAAM,MAAM,aAAgC,YAAY;AAExD,QAAM,mBAAmB;AAAA,IACrB,MAAM;AAAA,IACN;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,EAAA;AAEJ,QAAM,kBAAkB;AAAA,IACpB,iBAAA;AAAA,IACA;AAAA,EAAA;AAEJ,QAAM,kBAAkB;AAAA,IACpB;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,EAAA;AAGJ,QAAM,YAAY,gBAAgB,QAAQ,QAAQ,EAAE;AACpD,QAAM,UAAU,cAAc,QAAQ,QAAQ,EAAE;AAEhD,QAAM,UACFA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,iBAAe,OAAO,SAAS;AAAA,MAC/B,iBAAe;AAAA,MACf,IAAI;AAAA,MACJ,MAAK;AAAA,MACL,MAAK;AAAA,MACL,WAAW;AAAA,MACX;AAAA,MACA,SAAS,MAAM,QAAQ,SAAS,EAAE;AAAA,MAClC;AAAA,MACA,UAAU,SAAS,gBAAgB,SAAY,IAAI,OAAO,SAAS,cAAc,IAAI;AAAA,IAAA;AAAA,IACrFA,+BAAA,cAAC,QAAA,EAAK,WAAW,gBAAA,GAAkB,QAAS;AAAA,IAC5CA,+BAAA,cAAC,QAAA,EAAK,WAAW,gBAAA,CAAiB;AAAA,EAAA;AAI1C,MAAI,SAAS;AACT,WAAOA,+BAAA,cAAC,SAAA,EAAQ,OAAO,QAAA,GAAU,OAAQ;AAAA,EAC7C;AAEA,SAAO;AACX,CAAC;"}