@bioturing/components 0.15.5 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/components/Badge/component.js +9 -17
  2. package/dist/components/Badge/component.js.map +1 -1
  3. package/dist/components/Breadcrumb/component.js +4 -3
  4. package/dist/components/Breadcrumb/component.js.map +1 -1
  5. package/dist/components/Button/component.js +30 -3
  6. package/dist/components/Button/component.js.map +1 -1
  7. package/dist/components/Button/style.css +1 -1
  8. package/dist/components/CodeBlock/component.js +7 -6
  9. package/dist/components/CodeBlock/component.js.map +1 -1
  10. package/dist/components/CodeBlock/style.css +1 -1
  11. package/dist/components/Collapse/component.js +11 -10
  12. package/dist/components/Collapse/component.js.map +1 -1
  13. package/dist/components/ColorSelect/component.js +138 -0
  14. package/dist/components/ColorSelect/component.js.map +1 -0
  15. package/dist/components/ColorSelect/style.css +1 -0
  16. package/dist/components/DSRoot/component.js +8 -7
  17. package/dist/components/DSRoot/component.js.map +1 -1
  18. package/dist/components/DSRoot/context.js +5 -4
  19. package/dist/components/DSRoot/context.js.map +1 -1
  20. package/dist/components/DragDrop/context.js +18 -0
  21. package/dist/components/DragDrop/context.js.map +1 -0
  22. package/dist/components/DragDrop/draggable.js +64 -0
  23. package/dist/components/DragDrop/draggable.js.map +1 -0
  24. package/dist/components/DragDrop/droppable.js +48 -0
  25. package/dist/components/DragDrop/droppable.js.map +1 -0
  26. package/dist/components/DragDrop/hooks.js +139 -0
  27. package/dist/components/DragDrop/hooks.js.map +1 -0
  28. package/dist/components/DragDrop/index.js +45 -0
  29. package/dist/components/DragDrop/index.js.map +1 -0
  30. package/dist/components/DragDrop/style.css +1 -0
  31. package/dist/components/DropdownMenu/component.js +1 -0
  32. package/dist/components/DropdownMenu/component.js.map +1 -1
  33. package/dist/components/Field/component.js +13 -12
  34. package/dist/components/Field/component.js.map +1 -1
  35. package/dist/components/Form/component.js +4 -3
  36. package/dist/components/Form/component.js.map +1 -1
  37. package/dist/components/Form/item.js +1 -0
  38. package/dist/components/Form/item.js.map +1 -1
  39. package/dist/components/IconButton/component.js +55 -43
  40. package/dist/components/IconButton/component.js.map +1 -1
  41. package/dist/components/IconButton/style.css +1 -1
  42. package/dist/components/Modal/Modal.js +1 -0
  43. package/dist/components/Modal/Modal.js.map +1 -1
  44. package/dist/components/Modal/ModalProvider.js +1 -0
  45. package/dist/components/Modal/ModalProvider.js.map +1 -1
  46. package/dist/components/Modal/index.js +11 -10
  47. package/dist/components/Modal/index.js.map +1 -1
  48. package/dist/components/Nav/context.js +7 -0
  49. package/dist/components/Nav/context.js.map +1 -0
  50. package/dist/components/Nav/group.js +16 -0
  51. package/dist/components/Nav/group.js.map +1 -0
  52. package/dist/components/Nav/heading.js +16 -0
  53. package/dist/components/Nav/heading.js.map +1 -0
  54. package/dist/components/Nav/index.js +13 -0
  55. package/dist/components/Nav/index.js.map +1 -0
  56. package/dist/components/Nav/item.js +36 -0
  57. package/dist/components/Nav/item.js.map +1 -0
  58. package/dist/components/Nav/style.css +1 -0
  59. package/dist/components/Popover/component.js +6 -5
  60. package/dist/components/Popover/component.js.map +1 -1
  61. package/dist/components/PopupPanel/component.js +100 -99
  62. package/dist/components/PopupPanel/component.js.map +1 -1
  63. package/dist/components/ScrollArea/component.js +10 -9
  64. package/dist/components/ScrollArea/component.js.map +1 -1
  65. package/dist/components/Slider/component.js +9 -8
  66. package/dist/components/Slider/component.js.map +1 -1
  67. package/dist/components/Splitter/component.js +12 -11
  68. package/dist/components/Splitter/component.js.map +1 -1
  69. package/dist/components/Stack/Stack.js +40 -34
  70. package/dist/components/Stack/Stack.js.map +1 -1
  71. package/dist/components/Stack/StackChild.js +62 -54
  72. package/dist/components/Stack/StackChild.js.map +1 -1
  73. package/dist/components/Stack/style.css +1 -1
  74. package/dist/components/Table/component.js +54 -50
  75. package/dist/components/Table/component.js.map +1 -1
  76. package/dist/components/Table/style.css +1 -1
  77. package/dist/components/Tag/component.js +60 -24
  78. package/dist/components/Tag/component.js.map +1 -1
  79. package/dist/components/Tag/style.css +1 -1
  80. package/dist/components/ThemeProvider/component.js +27 -26
  81. package/dist/components/ThemeProvider/component.js.map +1 -1
  82. package/dist/components/ThemeProvider/style.css +1 -1
  83. package/dist/components/Toast/component.js +24 -29
  84. package/dist/components/Toast/component.js.map +1 -1
  85. package/dist/components/Toast/function.js +5 -4
  86. package/dist/components/Toast/function.js.map +1 -1
  87. package/dist/components/Tooltip/component.js +4 -21
  88. package/dist/components/Tooltip/component.js.map +1 -1
  89. package/dist/components/Tour/component.js +5 -4
  90. package/dist/components/Tour/component.js.map +1 -1
  91. package/dist/components/Transition/component.js +45 -32
  92. package/dist/components/Transition/component.js.map +1 -1
  93. package/dist/components/Tree/components.js +9 -8
  94. package/dist/components/Tree/components.js.map +1 -1
  95. package/dist/components/Tree/helpers.js +1 -0
  96. package/dist/components/Tree/helpers.js.map +1 -1
  97. package/dist/components/Tree/useTreeCommon.js +12 -11
  98. package/dist/components/Tree/useTreeCommon.js.map +1 -1
  99. package/dist/components/Truncate/component.js +1 -0
  100. package/dist/components/Truncate/component.js.map +1 -1
  101. package/dist/components/Upload/component.js +13 -11
  102. package/dist/components/Upload/component.js.map +1 -1
  103. package/dist/components/Upload/dragger.js +3 -2
  104. package/dist/components/Upload/dragger.js.map +1 -1
  105. package/dist/components/Upload/hooks.js +3 -2
  106. package/dist/components/Upload/hooks.js.map +1 -1
  107. package/dist/components/Upload/style.css +1 -0
  108. package/dist/components/VerticalCollapsiblePanel/component.js +39 -36
  109. package/dist/components/VerticalCollapsiblePanel/component.js.map +1 -1
  110. package/dist/components/hooks/antd.js +4 -3
  111. package/dist/components/hooks/antd.js.map +1 -1
  112. package/dist/components/hooks/base-ui.js +34 -28
  113. package/dist/components/hooks/base-ui.js.map +1 -1
  114. package/dist/components/hooks/useCharts.js +19 -17
  115. package/dist/components/hooks/useCharts.js.map +1 -1
  116. package/dist/components/hooks/useControlledState.js +17 -9
  117. package/dist/components/hooks/useControlledState.js.map +1 -1
  118. package/dist/components/utils/WithAntdTokens.js +14 -13
  119. package/dist/components/utils/WithAntdTokens.js.map +1 -1
  120. package/dist/components/utils/antdUtils.js +1 -0
  121. package/dist/components/utils/antdUtils.js.map +1 -1
  122. package/dist/components/utils/colors.js +5 -0
  123. package/dist/components/utils/colors.js.map +1 -0
  124. package/dist/index.d.ts +819 -65
  125. package/dist/index.js +191 -159
  126. package/dist/index.js.map +1 -1
  127. package/dist/metadata.js +124 -92
  128. package/dist/metadata.js.map +1 -1
  129. package/dist/tailwind.css +1 -1
  130. package/dist/tokens/and-theme/tokens.js +13 -7
  131. package/dist/tokens/and-theme/tokens.js.map +1 -1
  132. package/dist/tokens/charts/{tokens.js → palettes/cloudscape.js} +22 -12
  133. package/dist/tokens/charts/palettes/cloudscape.js.map +1 -0
  134. package/dist/tokens/charts/palettes/colorbrewer.js +1525 -0
  135. package/dist/tokens/charts/palettes/colorbrewer.js.map +1 -0
  136. package/dist/tokens/charts/palettes/index.js +61 -0
  137. package/dist/tokens/charts/palettes/index.js.map +1 -0
  138. package/dist/tokens/charts/palettes/tableau.js +112 -0
  139. package/dist/tokens/charts/palettes/tableau.js.map +1 -0
  140. package/dist/tokens/utils.js.map +1 -1
  141. package/package.json +7 -7
  142. package/dist/tokens/charts/index.js +0 -18
  143. package/dist/tokens/charts/index.js.map +0 -1
  144. package/dist/tokens/charts/tokens.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.js","sources":["../../../src/components/Stack/Stack.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn, useCls } from \"../utils\";\n\nexport type StackGap = 0 | 1 | 2 | 4 | 8 | 12 | 16 | 24;\n\nexport interface StackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Whether the stack should hug its content (inline-flex) instead of filling available space\n * @default false\n */\n hug?: boolean;\n\n /**\n * Vertical alignment of items within the stack\n * @default \"flex-start\"\n */\n align?: \"flex-start\" | \"flex-end\" | \"center\" | \"stretch\" | \"baseline\";\n\n /**\n * Horizontal alignment of items within the stack\n * @default \"flex-start\"\n */\n justify?:\n | \"flex-start\"\n | \"flex-end\"\n | \"center\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\";\n\n /**\n * Whether the stack should render items vertically\n * @default false\n */\n vertical?: boolean;\n\n /**\n * Gap between stack items in pixels\n * @default 0\n */\n gap?: StackGap;\n\n /**\n * Wrap items to multiple lines if needed\n * @default false\n */\n wrap?: boolean;\n\n /**\n * Children of the stack\n */\n children?: React.ReactNode;\n}\n\nexport const Stack: React.FC<StackProps> = ({\n hug = false,\n align = \"flex-start\",\n justify = \"flex-start\",\n vertical = false,\n gap = 0,\n wrap = false,\n className,\n children,\n ...rest\n}) => {\n const cls = useCls();\n\n return (\n <div\n className={cn(\n cls(\"stack\"),\n hug ? cls(\"stack-hug\") : cls(\"stack-fill\"),\n cls(`stack-gap-${gap}`),\n vertical ? cls(\"stack-vertical\") : cls(\"stack-horizontal\"),\n wrap && cls(\"stack-wrap\"),\n cls(`stack-align-${align}`),\n cls(`stack-justify-${justify}`),\n className\n )}\n {...rest}\n >\n {children}\n </div>\n );\n};\n"],"names":["Stack","hug","align","justify","vertical","gap","wrap","className","children","rest","cls","useCls","jsx","cn"],"mappings":";;;AAsDO,MAAMA,IAA8B,CAAC;AAAA,EAC1C,KAAAC,IAAM;AAAA,EACN,OAAAC,IAAQ;AAAA,EACR,SAAAC,IAAU;AAAA,EACV,UAAAC,IAAW;AAAA,EACX,KAAAC,IAAM;AAAA,EACN,MAAAC,IAAO;AAAA,EACP,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAMC,EAAO;AAGjB,SAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTH,EAAI,OAAO;AAAA,QACLA,EAANT,IAAU,cAAmB,YAAR;AAAA,QACrBS,EAAI,aAAaL,CAAG,EAAE;AAAA,QACXK,EAAXN,IAAe,mBAAwB,kBAAR;AAAA,QAC/BE,KAAQI,EAAI,YAAY;AAAA,QACxBA,EAAI,eAAeR,CAAK,EAAE;AAAA,QAC1BQ,EAAI,iBAAiBP,CAAO,EAAE;AAAA,QAC9BI;AAAA,MACF;AAAA,MACC,GAAGE;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EACH;AAEJ;"}
1
+ {"version":3,"file":"Stack.js","sources":["../../../src/components/Stack/Stack.tsx"],"sourcesContent":["\"use client\";\nimport React, { forwardRef } from \"react\";\nimport { cn, useCls } from \"../utils\";\n\nexport type StackGap = 0 | 1 | 2 | 4 | 8 | 12 | 16 | 24 | 28 | 32 | 40 | 48;\n\nexport interface StackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Whether the stack should hug its content (inline-flex) instead of filling available space\n * @default false\n */\n hug?: boolean;\n\n /**\n * Vertical alignment of items within the stack\n * @default \"flex-start\"\n */\n align?: \"flex-start\" | \"flex-end\" | \"center\" | \"stretch\" | \"baseline\";\n\n /**\n * Horizontal alignment of items within the stack\n * @default \"flex-start\"\n */\n justify?:\n | \"flex-start\"\n | \"flex-end\"\n | \"center\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\";\n\n /**\n * Whether the stack should render items vertically\n * @default false\n */\n vertical?: boolean;\n\n /**\n * Gap between stack items in pixels\n * @default 0\n */\n gap?: StackGap;\n\n /**\n * Wrap items to multiple lines if needed\n * @default false\n */\n wrap?: boolean;\n\n /**\n * Children of the stack\n */\n children?: React.ReactNode;\n}\n\nexport const Stack = forwardRef<HTMLDivElement, StackProps>(\n (\n {\n hug = false,\n align = \"flex-start\",\n justify = \"flex-start\",\n vertical = false,\n gap = 0,\n wrap = false,\n className,\n children,\n ...rest\n },\n ref\n ) => {\n const cls = useCls();\n\n return (\n <div\n ref={ref}\n className={cn(\n cls(\"stack\"),\n hug ? cls(\"stack-hug\") : cls(\"stack-fill\"),\n cls(`stack-gap-${gap}`),\n vertical ? cls(\"stack-vertical\") : cls(\"stack-horizontal\"),\n wrap && cls(\"stack-wrap\"),\n cls(`stack-align-${align}`),\n cls(`stack-justify-${justify}`),\n className\n )}\n {...rest}\n >\n {children}\n </div>\n );\n }\n);\n\nStack.displayName = \"Stack\";\n"],"names":["Stack","forwardRef","hug","align","justify","vertical","gap","wrap","className","children","rest","ref","cls","useCls","jsx","cn"],"mappings":";;;;;AAuDO,MAAMA,IAAQC;AAAA,EACnB,CACE;AAAA,IACE,KAAAC,IAAM;AAAA,IACN,OAAAC,IAAQ;AAAA,IACR,SAAAC,IAAU;AAAA,IACV,UAAAC,IAAW;AAAA,IACX,KAAAC,IAAM;AAAA,IACN,MAAAC,IAAO;AAAA,IACP,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,GAAGC;AAAA,KAELC,MACG;AACH,UAAMC,IAAMC,EAAO;AAGjB,WAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAH;AAAA,QACA,WAAWI;AAAA,UACTH,EAAI,OAAO;AAAA,UACLA,EAANV,IAAU,cAAmB,YAAR;AAAA,UACrBU,EAAI,aAAaN,CAAG,EAAE;AAAA,UACXM,EAAXP,IAAe,mBAAwB,kBAAR;AAAA,UAC/BE,KAAQK,EAAI,YAAY;AAAA,UACxBA,EAAI,eAAeT,CAAK,EAAE;AAAA,UAC1BS,EAAI,iBAAiBR,CAAO,EAAE;AAAA,UAC9BI;AAAA,QACF;AAAA,QACC,GAAGE;AAAA,QAEH,UAAAD;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;AAEAT,EAAM,cAAc;"}
@@ -1,57 +1,65 @@
1
- import { jsx as a } from "react/jsx-runtime";
2
- import g from "react";
3
- import { useRender as N } from "@base-ui-components/react/use-render";
4
- import { mergeProps as v } from "@base-ui-components/react/merge-props";
5
- import { Stack as E } from "./Stack.js";
6
- import { useCls as P } from "../utils/antdUtils.js";
7
- import { cn as R } from "../utils/cn.js";
8
- const B = ({
9
- flex: s,
10
- grow: l = !1,
11
- shrink: c = !1,
12
- children: e,
13
- style: m,
14
- stack: f = !1,
15
- // stack props
16
- hug: i = !1,
17
- align: n = "flex-start",
18
- justify: p = "flex-start",
19
- vertical: d = !1,
20
- gap: k = 0,
21
- wrap: u = !1,
22
- className: x,
23
- ...h
24
- }) => {
25
- const t = P(), y = {
26
- hug: i,
27
- align: n,
28
- justify: p,
29
- vertical: d,
30
- gap: k,
31
- wrap: u
32
- };
33
- let o = "";
34
- typeof s == "boolean" && (o = t(s ? "stack-child-flex-1" : "stack-child-flex-0"));
35
- const r = R(
36
- t("stack-child"),
37
- l && t("stack-child-grow"),
38
- c && t("stack-child-shrink"),
39
- o,
40
- x
41
- ), C = typeof s == "string" || typeof s == "number" ? s : void 0, { renderElement: b } = N({
42
- render: () => g.isValidElement(e) ? e : /* @__PURE__ */ a("div", { children: e }),
43
- props: v({
44
- className: r,
45
- style: {
46
- ...m,
47
- flex: C
48
- },
49
- ...h
50
- })
51
- });
52
- return f ? /* @__PURE__ */ a(E, { ...y, className: r, children: e }) : b();
53
- };
1
+ "use client";
2
+ import { jsx as r } from "react/jsx-runtime";
3
+ import b, { forwardRef as g } from "react";
4
+ import { useRender as R } from "@base-ui-components/react/use-render";
5
+ import { mergeProps as S } from "@base-ui-components/react/merge-props";
6
+ import { Stack as V } from "./Stack.js";
7
+ import { useCls as v } from "../utils/antdUtils.js";
8
+ import { cn as w } from "../utils/cn.js";
9
+ const E = g(
10
+ ({
11
+ flex: e,
12
+ grow: l = !1,
13
+ shrink: c = !1,
14
+ children: t,
15
+ style: f,
16
+ stack: m = !1,
17
+ // stack props
18
+ hug: i = !1,
19
+ align: n = "flex-start",
20
+ justify: p = "flex-start",
21
+ vertical: d = !1,
22
+ gap: k = 0,
23
+ wrap: u = !1,
24
+ className: x,
25
+ ...h
26
+ }, y) => {
27
+ const s = v(), C = {
28
+ hug: i,
29
+ align: n,
30
+ justify: p,
31
+ vertical: d,
32
+ gap: k,
33
+ wrap: u
34
+ };
35
+ let o = "";
36
+ typeof e == "boolean" && (o = s(e ? "stack-child-flex-1" : "stack-child-flex-0"));
37
+ const a = w(
38
+ s("stack-child"),
39
+ l && s("stack-child-grow"),
40
+ c && s("stack-child-shrink"),
41
+ o,
42
+ x
43
+ ), N = R({
44
+ render: () => b.isValidElement(t) ? t : /* @__PURE__ */ r("div", { children: t }),
45
+ ref: y,
46
+ props: S(
47
+ {
48
+ className: a,
49
+ style: {
50
+ ...f,
51
+ flex: typeof e == "string" || typeof e == "number" ? e : void 0
52
+ },
53
+ ...h
54
+ },
55
+ {}
56
+ )
57
+ });
58
+ return m ? /* @__PURE__ */ r(V, { ...C, className: a, children: t }) : N;
59
+ }
60
+ );
61
+ E.displayName = "StackChild";
54
62
  export {
55
- B as StackChild
63
+ E as StackChild
56
64
  };
57
65
  //# sourceMappingURL=StackChild.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StackChild.js","sources":["../../../src/components/Stack/StackChild.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn, useCls } from \"../utils\";\nimport { useRender } from \"@base-ui-components/react/use-render\";\nimport { mergeProps } from \"@base-ui-components/react/merge-props\";\nimport { Stack, StackProps } from \"./Stack\";\n\nexport interface StackChildProps extends StackProps {\n /**\n * CSS flex property value (e.g. \"1\", \"1 0 auto\", \"0 1 auto\")\n * When boolean: true = 1, false = 0\n * @default undefined\n */\n flex?: string | number | boolean;\n\n /**\n * Whether this child should grow to fill available space\n * @default false\n */\n grow?: boolean;\n\n /**\n * Whether this child should shrink if necessary\n * @default false\n */\n shrink?: boolean;\n\n /**\n * Children of the stack child\n */\n children?: React.ReactNode;\n /**\n * Whether to render the child with a stack wrapper\n * @default false\n */\n stack?: boolean;\n}\n\nexport const StackChild: React.FC<StackChildProps> = ({\n flex,\n grow = false,\n shrink = false,\n children,\n style,\n stack = false,\n // stack props\n hug = false,\n align = \"flex-start\",\n justify = \"flex-start\",\n vertical = false,\n gap = 0,\n wrap = false,\n\n className,\n ...rest\n}) => {\n const cls = useCls();\n const stackProps = {\n hug,\n align,\n justify,\n vertical,\n gap,\n wrap,\n };\n\n // Determine flex class based on flex prop type\n let flexClass = \"\";\n if (typeof flex === \"boolean\") {\n flexClass = flex ? cls(\"stack-child-flex-1\") : cls(\"stack-child-flex-0\");\n }\n\n // Calculate the combined className\n const combinedClassName = cn(\n cls(\"stack-child\"),\n grow && cls(\"stack-child-grow\"),\n shrink && cls(\"stack-child-shrink\"),\n flexClass,\n className\n );\n\n // Calculate the flex style value\n const flexValue =\n typeof flex === \"string\" || typeof flex === \"number\" ? flex : undefined;\n\n // Use useRender to apply props directly to the child without creating a wrapper\n const { renderElement } = useRender({\n render: () =>\n React.isValidElement(children) ? children : <div>{children}</div>,\n props: mergeProps<\"div\">({\n className: combinedClassName,\n style: {\n ...style,\n flex: flexValue,\n },\n ...rest,\n }),\n });\n\n return stack ? (\n <Stack {...stackProps} className={combinedClassName}>\n {children}\n </Stack>\n ) : (\n renderElement()\n );\n};\n"],"names":["StackChild","flex","grow","shrink","children","style","stack","hug","align","justify","vertical","gap","wrap","className","rest","cls","useCls","stackProps","flexClass","combinedClassName","cn","flexValue","renderElement","useRender","React","jsx","mergeProps","Stack"],"mappings":";;;;;;;AAqCO,MAAMA,IAAwC,CAAC;AAAA,EACpD,MAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,QAAAC,IAAS;AAAA,EACT,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA;AAAA,EAER,KAAAC,IAAM;AAAA,EACN,OAAAC,IAAQ;AAAA,EACR,SAAAC,IAAU;AAAA,EACV,UAAAC,IAAW;AAAA,EACX,KAAAC,IAAM;AAAA,EACN,MAAAC,IAAO;AAAA,EAEP,WAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAMC,EAAO,GACbC,IAAa;AAAA,IACjB,KAAAV;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,KAAAC;AAAA,IACA,MAAAC;AAAA,EACF;AAGA,MAAIM,IAAY;AACZ,EAAA,OAAOjB,KAAS,cAClBiB,IAAmBH,EAAPd,IAAW,uBAA4B,oBAAR;AAI7C,QAAMkB,IAAoBC;AAAA,IACxBL,EAAI,aAAa;AAAA,IACjBb,KAAQa,EAAI,kBAAkB;AAAA,IAC9BZ,KAAUY,EAAI,oBAAoB;AAAA,IAClCG;AAAA,IACAL;AAAA,EACF,GAGMQ,IACJ,OAAOpB,KAAS,YAAY,OAAOA,KAAS,WAAWA,IAAO,QAG1D,EAAE,eAAAqB,EAAc,IAAIC,EAAU;AAAA,IAClC,QAAQ,MACNC,EAAM,eAAepB,CAAQ,IAAIA,IAAY,gBAAAqB,EAAA,OAAA,EAAK,UAAArB,GAAS;AAAA,IAC7D,OAAOsB,EAAkB;AAAA,MACvB,WAAWP;AAAA,MACX,OAAO;AAAA,QACL,GAAGd;AAAA,QACH,MAAMgB;AAAA,MACR;AAAA,MACA,GAAGP;AAAA,IACJ,CAAA;AAAA,EAAA,CACF;AAEM,SAAAR,sBACJqB,GAAO,EAAA,GAAGV,GAAY,WAAWE,GAC/B,UAAAf,GACH,IAEAkB,EAAc;AAElB;"}
1
+ {"version":3,"file":"StackChild.js","sources":["../../../src/components/Stack/StackChild.tsx"],"sourcesContent":["\"use client\";\nimport React, { forwardRef } from \"react\";\nimport { cn, useCls } from \"../utils\";\nimport { useRender } from \"@base-ui-components/react/use-render\";\nimport { mergeProps } from \"@base-ui-components/react/merge-props\";\nimport { Stack, StackProps } from \"./Stack\";\n\nexport interface StackChildProps extends StackProps {\n /**\n * CSS flex property value (e.g. \"1\", \"1 0 auto\", \"0 1 auto\")\n * When boolean: true = 1, false = 0\n * @default undefined\n */\n flex?: string | number | boolean;\n\n /**\n * Whether this child should grow to fill available space\n * @default false\n */\n grow?: boolean;\n\n /**\n * Whether this child should shrink if necessary\n * @default false\n */\n shrink?: boolean;\n\n /**\n * Children of the stack child\n */\n children?: React.ReactNode;\n /**\n * Whether to render the child with a stack wrapper\n * @default false\n */\n stack?: boolean;\n}\n\nexport const StackChild = forwardRef<HTMLDivElement, StackChildProps>(\n (\n {\n flex,\n grow = false,\n shrink = false,\n children,\n style,\n stack = false,\n // stack props\n hug = false,\n align = \"flex-start\",\n justify = \"flex-start\",\n vertical = false,\n gap = 0,\n wrap = false,\n className,\n ...rest\n },\n ref\n ) => {\n const cls = useCls();\n const stackProps = {\n hug,\n align,\n justify,\n vertical,\n gap,\n wrap,\n };\n\n // Determine flex class based on flex prop type\n let flexClass = \"\";\n if (typeof flex === \"boolean\") {\n flexClass = flex ? cls(\"stack-child-flex-1\") : cls(\"stack-child-flex-0\");\n }\n\n // Calculate the combined className\n const combinedClassName = cn(\n cls(\"stack-child\"),\n grow && cls(\"stack-child-grow\"),\n shrink && cls(\"stack-child-shrink\"),\n flexClass,\n className\n );\n\n // Calculate the flex style value\n const flexValue =\n typeof flex === \"string\" || typeof flex === \"number\" ? flex : undefined;\n\n // Use useRender to apply props directly to the child without creating a wrapper\n const renderedElement = useRender({\n render: () =>\n React.isValidElement(children) ? children : <div>{children}</div>,\n ref,\n props: mergeProps<\"div\">(\n {\n className: combinedClassName,\n style: {\n ...style,\n flex: flexValue,\n },\n ...rest,\n },\n {}\n ),\n });\n\n return stack ? (\n <Stack {...stackProps} className={combinedClassName}>\n {children}\n </Stack>\n ) : (\n renderedElement\n );\n }\n);\n\nStackChild.displayName = \"StackChild\";\n"],"names":["StackChild","forwardRef","flex","grow","shrink","children","style","stack","hug","align","justify","vertical","gap","wrap","className","rest","ref","cls","useCls","stackProps","flexClass","combinedClassName","cn","renderedElement","useRender","React","jsx","mergeProps","Stack"],"mappings":";;;;;;;;AAsCO,MAAMA,IAAaC;AAAA,EACxB,CACE;AAAA,IACE,MAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,QAAAC,IAAS;AAAA,IACT,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA;AAAA,IAER,KAAAC,IAAM;AAAA,IACN,OAAAC,IAAQ;AAAA,IACR,SAAAC,IAAU;AAAA,IACV,UAAAC,IAAW;AAAA,IACX,KAAAC,IAAM;AAAA,IACN,MAAAC,IAAO;AAAA,IACP,WAAAC;AAAA,IACA,GAAGC;AAAA,KAELC,MACG;AACH,UAAMC,IAAMC,EAAO,GACbC,IAAa;AAAA,MACjB,KAAAX;AAAA,MACA,OAAAC;AAAA,MACA,SAAAC;AAAA,MACA,UAAAC;AAAA,MACA,KAAAC;AAAA,MACA,MAAAC;AAAA,IACF;AAGA,QAAIO,IAAY;AACZ,IAAA,OAAOlB,KAAS,cAClBkB,IAAmBH,EAAPf,IAAW,uBAA4B,oBAAR;AAI7C,UAAMmB,IAAoBC;AAAA,MACxBL,EAAI,aAAa;AAAA,MACjBd,KAAQc,EAAI,kBAAkB;AAAA,MAC9Bb,KAAUa,EAAI,oBAAoB;AAAA,MAClCG;AAAA,MACAN;AAAA,IACF,GAOMS,IAAkBC,EAAU;AAAA,MAChC,QAAQ,MACNC,EAAM,eAAepB,CAAQ,IAAIA,IAAY,gBAAAqB,EAAA,OAAA,EAAK,UAAArB,GAAS;AAAA,MAC7D,KAAAW;AAAA,MACA,OAAOW;AAAA,QACL;AAAA,UACE,WAAWN;AAAA,UACX,OAAO;AAAA,YACL,GAAGf;AAAA,YACH,MAZN,OAAOJ,KAAS,YAAY,OAAOA,KAAS,WAAWA,IAAO;AAAA,UAa1D;AAAA,UACA,GAAGa;AAAA,QACL;AAAA,QACA,CAAA;AAAA,MAAC;AAAA,IACH,CACD;AAEM,WAAAR,sBACJqB,GAAO,EAAA,GAAGT,GAAY,WAAWE,GAC/B,UAAAhB,EACH,CAAA,IAEAkB;AAAA,EAAA;AAGN;AAEAvB,EAAW,cAAc;"}
@@ -1 +1 @@
1
- @layer components{.ds-stack{display:flex}.ds-stack-hug{display:inline-flex}.ds-stack-horizontal{flex-direction:row}.ds-stack-vertical{flex-direction:column}.ds-stack-fill.ds-stack-vertical{height:100%}.ds-stack-fill.ds-stack-horizontal{width:100%}.ds-stack-wrap{flex-wrap:wrap}.ds-stack-gap-0{gap:0}.ds-stack-gap-1{gap:1px}.ds-stack-gap-2{gap:2px}.ds-stack-gap-4{gap:4px}.ds-stack-gap-8{gap:8px}.ds-stack-gap-12{gap:12px}.ds-stack-gap-16{gap:16px}.ds-stack-gap-24,.ds-stack-gap-32{gap:24px}.ds-stack-align-flex-start{align-items:flex-start}.ds-stack-align-flex-end{align-items:flex-end}.ds-stack-align-center{align-items:center}.ds-stack-align-stretch{align-items:stretch}.ds-stack-align-baseline{align-items:baseline}.ds-stack-justify-flex-start{justify-content:flex-start}.ds-stack-justify-flex-end{justify-content:flex-end}.ds-stack-justify-center{justify-content:center}.ds-stack-justify-space-between{justify-content:space-between}.ds-stack-justify-space-around{justify-content:space-around}.ds-stack-justify-space-evenly{justify-content:space-evenly}.ds-stack-child{min-width:0;min-height:0}.ds-stack-child-flex-0{flex:0}.ds-stack-child-flex-1{flex:1}.ds-stack-child-grow{flex-grow:1}.ds-stack-child-shrink{flex-shrink:1}}
1
+ @layer components{.ds-stack{display:flex}.ds-stack-hug{display:inline-flex}.ds-stack-horizontal{flex-direction:row}.ds-stack-vertical{flex-direction:column}.ds-stack-fill.ds-stack-vertical{height:100%}.ds-stack-fill.ds-stack-horizontal{width:100%}.ds-stack-wrap{flex-wrap:wrap}.ds-stack-gap-0{gap:0}.ds-stack-gap-1{gap:1px}.ds-stack-gap-2{gap:2px}.ds-stack-gap-4{gap:4px}.ds-stack-gap-8{gap:8px}.ds-stack-gap-12{gap:12px}.ds-stack-gap-16{gap:16px}.ds-stack-gap-24{gap:24px}.ds-stack-gap-28{gap:28px}.ds-stack-gap-32{gap:32px}.ds-stack-gap-40{gap:40px}.ds-stack-gap-48{gap:48px}.ds-stack-align-flex-start{align-items:flex-start}.ds-stack-align-flex-end{align-items:flex-end}.ds-stack-align-center{align-items:center}.ds-stack-align-stretch{align-items:stretch}.ds-stack-align-baseline{align-items:baseline}.ds-stack-justify-flex-start{justify-content:flex-start}.ds-stack-justify-flex-end{justify-content:flex-end}.ds-stack-justify-center{justify-content:center}.ds-stack-justify-space-between{justify-content:space-between}.ds-stack-justify-space-around{justify-content:space-around}.ds-stack-justify-space-evenly{justify-content:space-evenly}.ds-stack-child{min-width:0;min-height:0}.ds-stack-child-flex-0{flex:0}.ds-stack-child-flex-1{flex:1}.ds-stack-child-grow{flex-grow:1}.ds-stack-child-shrink{flex-shrink:1}}
@@ -1,98 +1,102 @@
1
- import { jsx as t, jsxs as j, Fragment as x } from "react/jsx-runtime";
1
+ "use client";
2
+ import { jsx as t, jsxs as U, Fragment as z } from "react/jsx-runtime";
2
3
  import o from "antd/es/table";
3
- import { FunnelIcon as A, CaretUpIcon as g, CaretDownIcon as L } from "@bioturing/assets";
4
- import { Empty as U } from "../Empty/component.js";
5
- import { forwardRef as H, useState as M, useRef as R, useEffect as D, useCallback as P } from "react";
4
+ import { FunnelIcon as H, CaretUpIcon as g, CaretDownIcon as L } from "@bioturing/assets";
5
+ import { Empty as M } from "../Empty/component.js";
6
+ import { forwardRef as P, useState as R, useRef as b, useEffect as D, useCallback as $ } from "react";
6
7
  import './style.css';/* empty css */
7
- import { useCls as $ } from "../utils/antdUtils.js";
8
- const k = ({
8
+ import { useCls as k } from "../utils/antdUtils.js";
9
+ import { clsx as q } from "../utils/cn.js";
10
+ const F = ({
9
11
  columns: N,
10
12
  locale: S,
11
13
  emptyDescription: T,
12
- loading: c,
13
- virtual: s,
14
+ loading: s,
15
+ virtual: i,
14
16
  scroll: d = {},
15
- ...y
16
- }, r) => {
17
- const i = $(), [O, b] = M(
18
- s ? {} : {
17
+ className: y,
18
+ variant: O,
19
+ ...h
20
+ }, c) => {
21
+ const r = k(), [_, w] = R(
22
+ i ? {} : {
19
23
  x: "fit-content"
20
24
  }
21
- ), a = R(null);
25
+ ), m = b(null), C = b(0);
22
26
  D(() => {
23
27
  var I;
24
- if (!a.current || !s) return;
25
- const e = (I = a.current) == null ? void 0 : I.nativeElement, n = e == null ? void 0 : e.parentElement;
28
+ if (!m.current || !i) return;
29
+ const e = (I = m.current) == null ? void 0 : I.nativeElement, n = e == null ? void 0 : e.parentElement;
26
30
  if (!n) return;
27
31
  const l = e == null ? void 0 : e.querySelector(
28
- `.${i("table-thead")}`
29
- ), m = e == null ? void 0 : e.querySelector(
30
- `.${i("table-pagination")}`
32
+ `.${r("table-thead")}`
33
+ ), a = e == null ? void 0 : e.querySelector(
34
+ `.${r("table-pagination")}`
31
35
  );
32
- let C = 0;
33
- if (m) {
34
- const p = getComputedStyle(m).marginTop, u = getComputedStyle(m).marginBottom;
35
- C = m.offsetHeight + parseInt(p) + parseInt(u);
36
+ if (a) {
37
+ const p = getComputedStyle(a).marginTop, u = getComputedStyle(a).marginBottom;
38
+ C.current = a.offsetHeight + parseInt(p) + parseInt(u);
36
39
  }
37
40
  const E = new ResizeObserver((p) => {
38
41
  for (const u of p)
39
- u.target && b({
40
- y: n.offsetHeight - (l ? l == null ? void 0 : l.offsetHeight : 0) - C
42
+ u.target && w({
43
+ y: n.offsetHeight - (l ? l == null ? void 0 : l.offsetHeight : 0) - C.current
41
44
  });
42
45
  });
43
- return n && s && E.observe(n), () => {
44
- n && s && E.disconnect();
46
+ return n && i && E.observe(n), () => {
47
+ n && i && E.disconnect();
45
48
  };
46
- }, [s, i]);
47
- const h = N ? N.map((e) => ({
49
+ }, [i, r]);
50
+ const x = N ? N.map((e) => ({
48
51
  sortIcon: ({ sortOrder: n }) => /* @__PURE__ */ t(
49
52
  "span",
50
53
  {
51
- className: i(
54
+ className: r(
52
55
  "table-column-sort-icon",
53
56
  n ? `table-column-sort-icon-${n}` : "table-column-sort-icon-none"
54
57
  ),
55
- children: n ? n === "ascend" ? /* @__PURE__ */ t(g, { weight: "fill" }) : /* @__PURE__ */ t(L, { weight: "fill" }) : /* @__PURE__ */ j(x, { children: [
58
+ children: n ? n === "ascend" ? /* @__PURE__ */ t(g, { weight: "fill" }) : /* @__PURE__ */ t(L, { weight: "fill" }) : /* @__PURE__ */ U(z, { children: [
56
59
  /* @__PURE__ */ t(g, { weight: "fill" }),
57
60
  " ",
58
61
  /* @__PURE__ */ t(L, { weight: "fill" })
59
62
  ] })
60
63
  }
61
64
  ),
62
- filterIcon: (n) => /* @__PURE__ */ t("span", { className: i("table-column-filter-icon"), children: /* @__PURE__ */ t(A, { weight: "fill" }) }),
65
+ filterIcon: (n) => /* @__PURE__ */ t("span", { className: r("table-column-filter-icon"), children: /* @__PURE__ */ t(H, { weight: "fill" }) }),
63
66
  ...e
64
- })) : void 0, _ = {
65
- emptyText: /* @__PURE__ */ t(U, { description: T }),
67
+ })) : void 0, j = {
68
+ emptyText: /* @__PURE__ */ t(M, { description: T }),
66
69
  ...S
67
70
  };
68
71
  let f;
69
- typeof c == "boolean" ? f = {
70
- spinning: c,
71
- indicator: /* @__PURE__ */ t("span", { className: i("spin-loader") })
72
- } : typeof c == "object" && (f = {
72
+ typeof s == "boolean" ? f = {
73
+ spinning: s,
74
+ indicator: /* @__PURE__ */ t("span", { className: r("spin-loader") })
75
+ } : typeof s == "object" && (f = {
73
76
  spinning: !0,
74
- indicator: /* @__PURE__ */ t("span", { className: i("spin-loader") }),
75
- ...c
77
+ indicator: /* @__PURE__ */ t("span", { className: r("spin-loader") }),
78
+ ...s
76
79
  });
77
- const w = P(
80
+ const A = $(
78
81
  (e) => {
79
- e && (typeof r == "function" && r(e), r && typeof r == "object" && "current" in r && (r.current = e), a.current = e);
82
+ e && (typeof c == "function" && c(e), c && typeof c == "object" && "current" in c && (c.current = e), m.current = e);
80
83
  },
81
- [r]
84
+ [c]
82
85
  );
83
86
  return /* @__PURE__ */ t(
84
87
  o,
85
88
  {
86
- ref: w,
87
- columns: h,
89
+ ref: A,
90
+ columns: x,
88
91
  loading: f,
89
- locale: _,
90
- virtual: s,
91
- scroll: { ...O, ...d },
92
- ...y
92
+ locale: j,
93
+ virtual: i,
94
+ scroll: { ..._, ...d },
95
+ className: q(O === "zebra" ? r("table-zebra") : "", y),
96
+ ...h
93
97
  }
94
98
  );
95
- }, q = H(k), J = Object.assign(q, {
99
+ }, G = P(F), Y = Object.assign(G, {
96
100
  Column: o.Column,
97
101
  ColumnGroup: o.ColumnGroup,
98
102
  SELECTION_COLUMN: o.SELECTION_COLUMN,
@@ -103,6 +107,6 @@ const k = ({
103
107
  Summary: o.Summary
104
108
  });
105
109
  export {
106
- J as Table
110
+ Y as Table
107
111
  };
108
112
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/Table/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n default as AntTable,\n type ColumnType,\n type TableProps as AntTableProps,\n type TableRef,\n} from \"antd/es/table\";\nimport { CaretDownIcon, CaretUpIcon, FunnelIcon } from \"@bioturing/assets\";\nimport { useCls } from \"../utils\";\nimport Empty from \"../Empty/component\";\nimport { SpinProps } from \"antd/es/spin\";\nimport {\n useState,\n useEffect,\n forwardRef,\n Ref,\n ForwardedRef,\n useCallback,\n useRef,\n} from \"react\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\n// Define interface with all the generic type parameters from AntTable without any\nexport interface TableProps<RecordType extends object = object>\n extends AntTableProps<RecordType> {\n /**\n * Add empty description for the table\n */\n emptyDescription?: React.ReactNode;\n /**\n * Table ref\n */\n tableRef?: React.Ref<HTMLDivElement>;\n}\n\n// Simple wrapper component with proper generics\nconst InnerInternalTable = <RecordType extends object = object>(\n {\n columns,\n locale,\n emptyDescription,\n loading,\n virtual,\n scroll: scrollProp = {},\n ...rest\n }: TableProps<RecordType>,\n ref: Ref<TableRef>\n) => {\n const cls = useCls();\n const [scroll, setScroll] = useState<TableProps[\"scroll\"]>(\n virtual\n ? {}\n : {\n x: \"fit-content\",\n }\n );\n\n const innerRef = useRef<TableRef>(null);\n\n useEffect(() => {\n if (!innerRef.current || !virtual) return;\n const tableEl = innerRef.current?.nativeElement;\n const parentEl = tableEl?.parentElement;\n if (!parentEl) return;\n const thead = tableEl?.querySelector(\n `.${cls(\"table-thead\")}`\n ) as HTMLElement;\n const tpagination = tableEl?.querySelector(\n `.${cls(\"table-pagination\")}`\n ) as HTMLElement;\n let tpaginationHeight = 0;\n if (tpagination) {\n const mt = getComputedStyle(tpagination).marginTop;\n const mb = getComputedStyle(tpagination).marginBottom;\n tpaginationHeight =\n tpagination.offsetHeight + parseInt(mt) + parseInt(mb);\n }\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target) {\n setScroll({\n y:\n parentEl.offsetHeight -\n (thead ? thead?.offsetHeight : 0) -\n tpaginationHeight,\n });\n }\n }\n });\n if (parentEl && virtual) {\n resizeObserver.observe(parentEl);\n }\n return () => {\n if (parentEl && virtual) {\n resizeObserver.disconnect();\n }\n };\n }, [virtual, cls]);\n\n const modifiedColumns = columns\n ? columns.map((column: ColumnType<RecordType>): ColumnType<RecordType> => {\n return {\n sortIcon: ({ sortOrder }) => {\n return (\n <span\n className={cls(\n \"table-column-sort-icon\",\n sortOrder\n ? `table-column-sort-icon-${sortOrder}`\n : `table-column-sort-icon-none`\n )}\n >\n {!sortOrder ? (\n <>\n <CaretUpIcon weight=\"fill\" />{\" \"}\n <CaretDownIcon weight=\"fill\" />\n </>\n ) : sortOrder === \"ascend\" ? (\n <CaretUpIcon weight=\"fill\" />\n ) : (\n <CaretDownIcon weight=\"fill\" />\n )}\n </span>\n );\n },\n filterIcon: (_filtered) => {\n return (\n <span className={cls(\"table-column-filter-icon\")}>\n <FunnelIcon weight=\"fill\" />\n </span>\n );\n },\n ...column,\n };\n })\n : undefined;\n const modifiedLocale = {\n emptyText: <Empty description={emptyDescription} />,\n ...locale,\n };\n let spinProps: SpinProps | undefined;\n if (typeof loading === \"boolean\") {\n spinProps = {\n spinning: loading,\n indicator: <span className={cls(\"spin-loader\")} />,\n };\n } else if (typeof loading === \"object\") {\n spinProps = {\n spinning: true,\n indicator: <span className={cls(\"spin-loader\")} />,\n ...loading,\n };\n }\n const callbackRef = useCallback(\n (tableRef: TableRef) => {\n if (tableRef) {\n if (typeof ref === \"function\") {\n ref(tableRef);\n }\n if (ref && typeof ref === \"object\" && \"current\" in ref) {\n ref.current = tableRef;\n }\n innerRef.current = tableRef;\n }\n },\n [ref]\n );\n\n return (\n <AntTable\n ref={callbackRef}\n columns={modifiedColumns}\n loading={spinProps}\n locale={modifiedLocale}\n virtual={virtual}\n scroll={{ ...scroll, ...scrollProp }}\n {...rest}\n />\n );\n};\n\nconst InternalTable = forwardRef(InnerInternalTable) as <\n RecordType extends object = object\n>(\n props: TableProps<RecordType> & { ref?: ForwardedRef<TableRef> }\n) => ReturnType<typeof InnerInternalTable>;\n\n// Create the final component with all static properties\nexport const Table = Object.assign(InternalTable, {\n Column: AntTable.Column,\n ColumnGroup: AntTable.ColumnGroup,\n SELECTION_COLUMN: AntTable.SELECTION_COLUMN,\n EXPAND_COLUMN: AntTable.EXPAND_COLUMN,\n SELECTION_ALL: AntTable.SELECTION_ALL,\n SELECTION_INVERT: AntTable.SELECTION_INVERT,\n SELECTION_NONE: AntTable.SELECTION_NONE,\n Summary: AntTable.Summary,\n}) as typeof InternalTable & {\n Column: typeof AntTable.Column;\n ColumnGroup: typeof AntTable.ColumnGroup;\n SELECTION_COLUMN: typeof AntTable.SELECTION_COLUMN;\n EXPAND_COLUMN: typeof AntTable.EXPAND_COLUMN;\n SELECTION_ALL: typeof AntTable.SELECTION_ALL;\n SELECTION_INVERT: typeof AntTable.SELECTION_INVERT;\n SELECTION_NONE: typeof AntTable.SELECTION_NONE;\n Summary: typeof AntTable.Summary;\n};\n"],"names":["InnerInternalTable","columns","locale","emptyDescription","loading","virtual","scrollProp","rest","ref","cls","useCls","scroll","setScroll","useState","innerRef","useRef","useEffect","tableEl","_a","parentEl","thead","tpagination","tpaginationHeight","mt","mb","resizeObserver","entries","entry","modifiedColumns","column","sortOrder","jsx","CaretUpIcon","CaretDownIcon","jsxs","Fragment","_filtered","FunnelIcon","modifiedLocale","Empty","spinProps","callbackRef","useCallback","tableRef","AntTable","InternalTable","forwardRef","Table"],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/Table/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n default as AntTable,\n type ColumnType,\n type TableProps as AntTableProps,\n type TableRef,\n} from \"antd/es/table\";\nimport { CaretDownIcon, CaretUpIcon, FunnelIcon } from \"@bioturing/assets\";\nimport { clsx, useCls } from \"../utils\";\nimport Empty from \"../Empty/component\";\nimport { SpinProps } from \"antd/es/spin\";\nimport {\n useState,\n useEffect,\n forwardRef,\n Ref,\n ForwardedRef,\n useCallback,\n useRef,\n} from \"react\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\n// Define interface with all the generic type parameters from AntTable without any\nexport interface TableProps<RecordType extends object = object>\n extends AntTableProps<RecordType> {\n /**\n * Add empty description for the table\n */\n emptyDescription?: React.ReactNode;\n /**\n * Table ref\n */\n tableRef?: React.Ref<HTMLDivElement>;\n /**\n * Table style\n */\n variant?: \"default\" | \"zebra\";\n}\n\n// Simple wrapper component with proper generics\nconst InnerInternalTable = <RecordType extends object = object>(\n {\n columns,\n locale,\n emptyDescription,\n loading,\n virtual,\n scroll: scrollProp = {},\n className,\n variant,\n ...rest\n }: TableProps<RecordType>,\n ref: Ref<TableRef>\n) => {\n const cls = useCls();\n const [scroll, setScroll] = useState<TableProps[\"scroll\"]>(\n virtual\n ? {}\n : {\n x: \"fit-content\",\n }\n );\n\n const innerRef = useRef<TableRef>(null);\n const tablePaginationHeight = useRef<number>(0);\n\n useEffect(() => {\n if (!innerRef.current || !virtual) return;\n const tableEl = innerRef.current?.nativeElement;\n const parentEl = tableEl?.parentElement;\n if (!parentEl) return;\n const thead = tableEl?.querySelector(\n `.${cls(\"table-thead\")}`\n ) as HTMLElement;\n const tpagination = tableEl?.querySelector(\n `.${cls(\"table-pagination\")}`\n ) as HTMLElement;\n if (tpagination) {\n const mt = getComputedStyle(tpagination).marginTop;\n const mb = getComputedStyle(tpagination).marginBottom;\n tablePaginationHeight.current =\n tpagination.offsetHeight + parseInt(mt) + parseInt(mb);\n }\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target) {\n setScroll({\n y:\n parentEl.offsetHeight -\n (thead ? thead?.offsetHeight : 0) -\n tablePaginationHeight.current,\n });\n }\n }\n });\n if (parentEl && virtual) {\n resizeObserver.observe(parentEl);\n }\n return () => {\n if (parentEl && virtual) {\n resizeObserver.disconnect();\n }\n };\n }, [virtual, cls]);\n\n const modifiedColumns = columns\n ? columns.map((column: ColumnType<RecordType>): ColumnType<RecordType> => {\n return {\n sortIcon: ({ sortOrder }) => {\n return (\n <span\n className={cls(\n \"table-column-sort-icon\",\n sortOrder\n ? `table-column-sort-icon-${sortOrder}`\n : `table-column-sort-icon-none`\n )}\n >\n {!sortOrder ? (\n <>\n <CaretUpIcon weight=\"fill\" />{\" \"}\n <CaretDownIcon weight=\"fill\" />\n </>\n ) : sortOrder === \"ascend\" ? (\n <CaretUpIcon weight=\"fill\" />\n ) : (\n <CaretDownIcon weight=\"fill\" />\n )}\n </span>\n );\n },\n filterIcon: (_filtered) => {\n return (\n <span className={cls(\"table-column-filter-icon\")}>\n <FunnelIcon weight=\"fill\" />\n </span>\n );\n },\n ...column,\n };\n })\n : undefined;\n const modifiedLocale = {\n emptyText: <Empty description={emptyDescription} />,\n ...locale,\n };\n let spinProps: SpinProps | undefined;\n if (typeof loading === \"boolean\") {\n spinProps = {\n spinning: loading,\n indicator: <span className={cls(\"spin-loader\")} />,\n };\n } else if (typeof loading === \"object\") {\n spinProps = {\n spinning: true,\n indicator: <span className={cls(\"spin-loader\")} />,\n ...loading,\n };\n }\n const callbackRef = useCallback(\n (tableRef: TableRef) => {\n if (tableRef) {\n if (typeof ref === \"function\") {\n ref(tableRef);\n }\n if (ref && typeof ref === \"object\" && \"current\" in ref) {\n ref.current = tableRef;\n }\n innerRef.current = tableRef;\n }\n },\n [ref]\n );\n\n return (\n <AntTable\n ref={callbackRef}\n columns={modifiedColumns}\n loading={spinProps}\n locale={modifiedLocale}\n virtual={virtual}\n scroll={{ ...scroll, ...scrollProp }}\n className={clsx(variant === \"zebra\" ? cls(\"table-zebra\") : \"\", className)}\n {...rest}\n />\n );\n};\n\nconst InternalTable = forwardRef(InnerInternalTable) as <\n RecordType extends object = object\n>(\n props: TableProps<RecordType> & { ref?: ForwardedRef<TableRef> }\n) => ReturnType<typeof InnerInternalTable>;\n\n// Create the final component with all static properties\nexport const Table = Object.assign(InternalTable, {\n Column: AntTable.Column,\n ColumnGroup: AntTable.ColumnGroup,\n SELECTION_COLUMN: AntTable.SELECTION_COLUMN,\n EXPAND_COLUMN: AntTable.EXPAND_COLUMN,\n SELECTION_ALL: AntTable.SELECTION_ALL,\n SELECTION_INVERT: AntTable.SELECTION_INVERT,\n SELECTION_NONE: AntTable.SELECTION_NONE,\n Summary: AntTable.Summary,\n}) as typeof InternalTable & {\n Column: typeof AntTable.Column;\n ColumnGroup: typeof AntTable.ColumnGroup;\n SELECTION_COLUMN: typeof AntTable.SELECTION_COLUMN;\n EXPAND_COLUMN: typeof AntTable.EXPAND_COLUMN;\n SELECTION_ALL: typeof AntTable.SELECTION_ALL;\n SELECTION_INVERT: typeof AntTable.SELECTION_INVERT;\n SELECTION_NONE: typeof AntTable.SELECTION_NONE;\n Summary: typeof AntTable.Summary;\n};\n"],"names":["InnerInternalTable","columns","locale","emptyDescription","loading","virtual","scrollProp","className","variant","rest","ref","cls","useCls","scroll","setScroll","useState","innerRef","useRef","tablePaginationHeight","useEffect","tableEl","_a","parentEl","thead","tpagination","mt","mb","resizeObserver","entries","entry","modifiedColumns","column","sortOrder","jsx","CaretUpIcon","CaretDownIcon","jsxs","Fragment","_filtered","FunnelIcon","modifiedLocale","Empty","spinProps","callbackRef","useCallback","tableRef","AntTable","clsx","InternalTable","forwardRef","Table"],"mappings":"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"}
@@ -1 +1 @@
1
- @layer components{.ds-table-column-sort-icon{display:flex;flex-direction:column}.ds-table-column-sort-icon svg{color:var(--ds-color-text-disabled);font-size:1rem}:is(.ds-table-column-sort-icon svg):hover{color:var(--ds-color-text-secondary)}.ds-table-column-sort-icon.ds-table-column-sort-icon-none svg{font-size:.75rem}.ds-table-column-sort-icon.ds-table-column-sort-icon-none>svg:first-child{margin-bottom:-2px}.ds-table-column-sort-icon.ds-table-column-sort-icon-none>svg:last-child{margin-top:-2px}.ds-table-column-filter-icon{display:flex;flex-direction:column}.ds-table-column-filter-icon svg{color:var(--ds-color-text-disabled);font-size:.875rem}:is(.ds-table-column-filter-icon svg):hover{color:var(--ds-color-text-secondary)}.ds-table-column-filter-icon.ds-table-column-filter-icon-active svg{color:var(--ds-color-primary)}.ds-table-wrapper .ds-table-ping-left .ds-table-cell-fix-left-first:after,.ds-table-wrapper .ds-table-ping-left .ds-table-cell-fix-left-last:after{box-shadow:inset 10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-right .ds-table-cell-fix-right-first:after,.ds-table-wrapper .ds-table-ping-right .ds-table-cell-fix-right-last:after{box-shadow:inset -10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-right:not(.ds-table-has-fix-right) .ds-table-container:after{box-shadow:inset -10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-left:not(.ds-table-has-fix-left) .ds-table-container:before{box-shadow:inset 10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper{display:flex;flex-direction:column}.ds-table-wrapper .ds-spin-nested-loading,.ds-table-wrapper .ds-spin-container{display:flex;flex-direction:column;flex-shrink:1;flex-grow:1;min-height:0}:is(.ds-table-wrapper .ds-spin-container) .ds-table{flex-shrink:1;flex-grow:1;min-height:0}.ds-table{display:flex;flex-direction:column}.ds-table-container{flex-shrink:1;min-height:0;display:flex;flex-direction:column}.ds-table-header{flex-shrink:0}.ds-table-body{flex-shrink:1;min-height:0;min-width:0}}
1
+ @layer components{.ds-table-column-sort-icon{display:flex;flex-direction:column}.ds-table-column-sort-icon svg{color:var(--ds-color-text-disabled);font-size:1rem}:is(.ds-table-column-sort-icon svg):hover{color:var(--ds-color-text-secondary)}.ds-table-column-sort-icon.ds-table-column-sort-icon-none svg{font-size:.75rem}.ds-table-column-sort-icon.ds-table-column-sort-icon-none>svg:first-child{margin-bottom:-2px}.ds-table-column-sort-icon.ds-table-column-sort-icon-none>svg:last-child{margin-top:-2px}.ds-table-column-filter-icon{display:flex;flex-direction:column}.ds-table-column-filter-icon svg{color:var(--ds-color-text-disabled);font-size:.875rem}:is(.ds-table-column-filter-icon svg):hover{color:var(--ds-color-text-secondary)}.ds-table-column-filter-icon.ds-table-column-filter-icon-active svg{color:var(--ds-color-primary)}.ds-table-wrapper .ds-table-ping-left .ds-table-cell-fix-left-first:after,.ds-table-wrapper .ds-table-ping-left .ds-table-cell-fix-left-last:after{box-shadow:inset 10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-right .ds-table-cell-fix-right-first:after,.ds-table-wrapper .ds-table-ping-right .ds-table-cell-fix-right-last:after{box-shadow:inset -10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-right:not(.ds-table-has-fix-right) .ds-table-container:after{box-shadow:inset -10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-left:not(.ds-table-has-fix-left) .ds-table-container:before{box-shadow:inset 10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper{display:flex;flex-direction:column}.ds-table-wrapper .ds-spin-nested-loading,.ds-table-wrapper .ds-spin-container{display:flex;flex-direction:column;flex-shrink:1;flex-grow:1;min-height:0}:is(.ds-table-wrapper .ds-spin-container) .ds-table{flex-shrink:1;flex-grow:1;min-height:0}.ds-table{display:flex;flex-direction:column}.ds-table-container{flex-shrink:1;min-height:0;display:flex;flex-direction:column}.ds-table-header{flex-shrink:0}.ds-table-body{flex-shrink:1;min-height:0;min-width:0}:is(.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table)>.ds-table-thead>tr>th,:is(.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table)>.ds-table-thead>tr>td{background:transparent}:is(.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table)>.ds-table-thead>tr>th,:is(.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table)>.ds-table-thead>tr>td,:is(.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table)>.ds-table-tbody>tr>th,:is(.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table)>.ds-table-tbody>tr>td{border-bottom:0}:is(.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table)>.ds-table-tbody>.ds-table-row:nth-child(2n) .ds-table-cell{background-color:var(--ds-color-fill-tertiary)}:is(:is(.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table)>.ds-table-tbody>.ds-table-row:nth-child(2n) .ds-table-cell):first-child{border-top-left-radius:var(--ds-border-radius);border-bottom-left-radius:var(--ds-border-radius)}:is(:is(.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table)>.ds-table-tbody>.ds-table-row:nth-child(2n) .ds-table-cell):last-child{border-top-right-radius:var(--ds-border-radius);border-bottom-right-radius:var(--ds-border-radius)}:is(.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table)>.ds-table-tbody>.ds-table-row:nth-child(2n)>.ds-table-cell-row-hover{background-color:var(--ds-color-fill-secondary)}:is(.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table)>.ds-table-tbody>tr>td.ds-table-column-sort{background-color:unset}}
@@ -1,30 +1,66 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import { X as d } from "@bioturing/assets";
3
- import r from "antd/es/tag";
1
+ "use client";
2
+ import { jsx as c } from "react/jsx-runtime";
3
+ import { forwardRef as l } from "react";
4
+ import { XIcon as C } from "@bioturing/assets";
5
+ import g from "antd/es/tag";
4
6
  import './style.css';/* empty css */
5
- const g = ({
6
- className: t,
7
- active: n = !1,
8
- color: a,
9
- style: c,
10
- closeIcon: s,
11
- closable: e,
12
- ...i
13
- }) => /* @__PURE__ */ o(
14
- r,
15
- {
16
- className: t,
17
- color: a,
18
- style: c,
19
- closable: e,
20
- closeIcon: e ? s || /* @__PURE__ */ o(d, { weight: "bold" }) : void 0,
21
- ...n ? { "data-active": "true" } : {},
22
- ...i
7
+ import { useCls as i } from "../utils/antdUtils.js";
8
+ import { clsx as p } from "../utils/cn.js";
9
+ const I = l(
10
+ ({
11
+ className: a,
12
+ active: e = !1,
13
+ color: o,
14
+ style: s,
15
+ closeIcon: r,
16
+ closable: t,
17
+ size: f = "small",
18
+ children: n,
19
+ ...u
20
+ }, T) => {
21
+ const d = /* @__PURE__ */ c(C, { weight: "bold" }), m = i();
22
+ return /* @__PURE__ */ c(
23
+ g,
24
+ {
25
+ ref: T,
26
+ className: p(
27
+ m("tag"),
28
+ m(`tag-${f}`),
29
+ !n && m("tag-empty"),
30
+ a
31
+ ),
32
+ color: o,
33
+ style: s,
34
+ closable: t,
35
+ closeIcon: t ? r || d : void 0,
36
+ ...e ? { "data-active": "true" } : {},
37
+ ...u,
38
+ children: n
39
+ }
40
+ );
23
41
  }
24
- ), C = Object.assign(g, {
25
- CheckableTag: r.CheckableTag
42
+ ), b = l(
43
+ ({ className: a, size: e = "small", children: o, ...s }, r) => {
44
+ const t = i();
45
+ return /* @__PURE__ */ c(
46
+ g.CheckableTag,
47
+ {
48
+ ref: r,
49
+ className: p(
50
+ t("tag"),
51
+ t(`tag-${e}`),
52
+ !o && t("tag-empty"),
53
+ a
54
+ ),
55
+ ...s,
56
+ children: o
57
+ }
58
+ );
59
+ }
60
+ ), $ = Object.assign(I, {
61
+ CheckableTag: b
26
62
  });
27
63
  export {
28
- C as Tag
64
+ $ as Tag
29
65
  };
30
66
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/Tag/component.tsx"],"sourcesContent":["\"use client\";\nimport { X } from \"@bioturing/assets\";\nimport {\n default as AntTag,\n type TagProps as AntTagProps,\n type TagType,\n} from \"antd/es/tag\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport { TagType };\n\n// Define props interface extending Ant Design's TagProps\nexport interface TagProps extends AntTagProps {\n /**\n * Indicates if the tag is active\n * @default false\n */\n active?: boolean;\n}\n\n// Create Tag component\nconst InternalTag = ({\n className,\n active = false,\n color,\n style,\n closeIcon,\n closable,\n ...rest\n}: TagProps) => {\n const renderedCloseIcon = <X weight=\"bold\" />;\n return (\n <AntTag\n className={className}\n color={color}\n style={style}\n closable={closable}\n closeIcon={closable ? closeIcon || renderedCloseIcon : undefined}\n {...(active ? { \"data-active\": \"true\" } : {})}\n {...rest}\n />\n );\n};\n\nexport const Tag = Object.assign(InternalTag, {\n CheckableTag: AntTag.CheckableTag,\n});\n"],"names":["InternalTag","className","active","color","style","closeIcon","closable","rest","jsx","AntTag","X","Tag"],"mappings":";;;;AAuBA,MAAMA,IAAc,CAAC;AAAA,EACnB,WAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,MAGI,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,WAAAR;AAAA,IACA,OAAAE;AAAA,IACA,OAAAC;AAAA,IACA,UAAAE;AAAA,IACA,WAAWA,IAAWD,KAPA,gBAAAG,EAACE,GAAE,EAAA,QAAO,OAAO,CAAA,IAOgB;AAAA,IACtD,GAAIR,IAAS,EAAE,eAAe,WAAW,CAAC;AAAA,IAC1C,GAAGK;AAAA,EAAA;AACN,GAISI,IAAM,OAAO,OAAOX,GAAa;AAAA,EAC5C,cAAcS,EAAO;AACvB,CAAC;"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/Tag/component.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef } from \"react\";\nimport { XIcon } from \"@bioturing/assets\";\nimport {\n default as AntTag,\n type CheckableTagProps as AntCheckableTagProps,\n type TagProps as AntTagProps,\n type TagType,\n} from \"antd/es/tag\";\nimport { clsx, useCls } from \"../utils\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport { TagType };\n\n// Define props interface extending Ant Design's TagProps\nexport interface TagProps extends AntTagProps {\n /**\n * Indicates if the tag is active\n * @default false\n */\n active?: boolean;\n /**\n * Size of the tag\n * @default \"small\"\n */\n size?: \"small\" | \"medium\" | \"large\";\n}\n\nexport interface CheckableTagProps extends AntCheckableTagProps {\n size?: \"small\" | \"medium\" | \"large\";\n}\n\n// Create Tag component\nconst InternalTag = forwardRef<HTMLSpanElement, TagProps>(\n (\n {\n className,\n active = false,\n color,\n style,\n closeIcon,\n closable,\n size = \"small\",\n children,\n ...rest\n },\n ref\n ) => {\n const renderedCloseIcon = <XIcon weight=\"bold\" />;\n const cls = useCls();\n return (\n <AntTag\n ref={ref}\n className={clsx(\n cls(\"tag\"),\n cls(`tag-${size}`),\n !children && cls(\"tag-empty\"),\n className\n )}\n color={color}\n style={style}\n closable={closable}\n closeIcon={closable ? closeIcon || renderedCloseIcon : undefined}\n {...(active ? { \"data-active\": \"true\" } : {})}\n {...rest}\n >\n {children}\n </AntTag>\n );\n }\n);\n\nconst CheckableTag = forwardRef<HTMLSpanElement, CheckableTagProps>(\n ({ className, size = \"small\", children, ...rest }, ref) => {\n const cls = useCls();\n return (\n <AntTag.CheckableTag\n ref={ref}\n className={clsx(\n cls(\"tag\"),\n cls(`tag-${size}`),\n !children && cls(\"tag-empty\"),\n className\n )}\n {...rest}\n >\n {children}\n </AntTag.CheckableTag>\n );\n }\n);\n\nexport const Tag = Object.assign(InternalTag, {\n CheckableTag,\n});\n"],"names":["InternalTag","forwardRef","className","active","color","style","closeIcon","closable","size","children","rest","ref","renderedCloseIcon","jsx","XIcon","cls","useCls","AntTag","clsx","CheckableTag","Tag"],"mappings":";;;;;;;;AAmCA,MAAMA,IAAcC;AAAA,EAClB,CACE;AAAA,IACE,WAAAC;AAAA,IACA,QAAAC,IAAS;AAAA,IACT,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,UAAAC;AAAA,IACA,GAAGC;AAAA,KAELC,MACG;AACH,UAAMC,IAAoB,gBAAAC,EAACC,GAAM,EAAA,QAAO,OAAO,CAAA,GACzCC,IAAMC,EAAO;AAEjB,WAAA,gBAAAH;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,KAAAN;AAAA,QACA,WAAWO;AAAA,UACTH,EAAI,KAAK;AAAA,UACTA,EAAI,OAAOP,CAAI,EAAE;AAAA,UACjB,CAACC,KAAYM,EAAI,WAAW;AAAA,UAC5Bb;AAAA,QACF;AAAA,QACA,OAAAE;AAAA,QACA,OAAAC;AAAA,QACA,UAAAE;AAAA,QACA,WAAWA,IAAWD,KAAaM,IAAoB;AAAA,QACtD,GAAIT,IAAS,EAAE,eAAe,WAAW,CAAC;AAAA,QAC1C,GAAGO;AAAA,QAEH,UAAAD;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN,GAEMU,IAAelB;AAAA,EACnB,CAAC,EAAE,WAAAC,GAAW,MAAAM,IAAO,SAAS,UAAAC,GAAU,GAAGC,EAAK,GAAGC,MAAQ;AACzD,UAAMI,IAAMC,EAAO;AAEjB,WAAA,gBAAAH;AAAA,MAACI,EAAO;AAAA,MAAP;AAAA,QACC,KAAAN;AAAA,QACA,WAAWO;AAAA,UACTH,EAAI,KAAK;AAAA,UACTA,EAAI,OAAOP,CAAI,EAAE;AAAA,UACjB,CAACC,KAAYM,EAAI,WAAW;AAAA,UAC5Bb;AAAA,QACF;AAAA,QACC,GAAGQ;AAAA,QAEH,UAAAD;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN,GAEaW,IAAM,OAAO,OAAOpB,GAAa;AAAA,EAC5C,cAAAmB;AACF,CAAC;"}
@@ -1 +1 @@
1
- @layer components{.ds-tag{display:inline-flex;align-items:center}.ds-tag[data-active]{background-color:var(--ds-color-primary-bg);border-color:var(--ds-color-primary);color:var(--ds-color-primary)}.ds-tag .ds-tag-close-icon{color:var(--ds-color-icon)}}
1
+ @layer components{.ds-tag{display:inline-flex;align-items:center;font-size:var(--ds-font-size-sm);padding:.0625rem .4375rem}.ds-tag[data-active]{background-color:var(--ds-color-primary-bg);border-color:var(--ds-color-primary);color:var(--ds-color-primary)}.ds-tag .ds-tag-close-icon{color:var(--ds-color-icon)}.ds-tag.ds-tag-medium{padding:.1875rem .4375rem}.ds-tag.ds-tag-large{font-size:var(--ds-font-size);padding:.1875rem .4375rem}.ds-tag:is(.ds-tag-magenta,.ds-tag-red,.ds-tag-volcano,.ds-tag-orange,.ds-tag-gold,.ds-tag-lime,.ds-tag-green,.ds-tag-cyan,.ds-tag-blue,.ds-tag-geekblue,.ds-tag-purple) .ds-tag-close-icon{color:currentColor}.ds-tag.ds-tag-empty .ds-tag-close-icon{margin-left:0}}
@@ -1,38 +1,39 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import n from "antd/es/config-provider";
3
- import { useLayoutEffect as f, Children as u, isValidElement as p, cloneElement as a } from "react";
4
- import { lightTheme as d, darkTheme as v } from "../../tokens/and-theme/tokens.js";
5
- import { StyleProvider as g } from "@ant-design/cssinjs";
1
+ "use client";
2
+ import { jsx as i } from "react/jsx-runtime";
3
+ import f from "antd/es/config-provider";
4
+ import { useLayoutEffect as u, Children as a, isValidElement as p, cloneElement as d } from "react";
5
+ import { lightTheme as v, darkTheme as g } from "../../tokens/and-theme/tokens.js";
6
+ import { StyleProvider as h } from "@ant-design/cssinjs";
6
7
  import './style.css';/* empty css */
7
- import { useCls as h } from "../utils/antdUtils.js";
8
- import { clsx as c } from "../utils/cn.js";
9
- const y = ({
10
- children: e,
11
- theme: m,
8
+ import { useCls as y, useAntdCssVarClassname as x } from "../utils/antdUtils.js";
9
+ import { clsx as n } from "../utils/cn.js";
10
+ const S = ({
11
+ children: t,
12
+ theme: s,
12
13
  appendClassesTo: r
13
14
  }) => {
14
- const l = h(), i = c(l("theme-provider"), m.toString());
15
- return f(() => {
16
- const t = i.split(" "), o = typeof r == "string" ? document.querySelector(r) : r;
17
- return o && o.classList.add(...t), () => {
18
- o && o.classList.remove(...t);
15
+ const c = y(), l = x(), m = n(c("theme-provider"), s.toString(), l);
16
+ return u(() => {
17
+ const e = m.split(" "), o = typeof r == "string" ? document.querySelector(r) : r;
18
+ return o && o.classList.add(...e), () => {
19
+ o && o.classList.remove(...e);
19
20
  };
20
- }, [r, i]), r === void 0 ? u.map(e, (t) => p(t) ? a(t, {
21
- className: c(
22
- t.props.className,
23
- i
21
+ }, [r, m]), r === void 0 ? a.map(t, (e) => p(e) ? d(e, {
22
+ className: n(
23
+ e.props.className,
24
+ m
24
25
  )
25
- }) : t) : e;
26
+ }) : e) : t;
26
27
  }, q = ({
27
- theme: e,
28
- appendClassesTo: m,
28
+ theme: t,
29
+ appendClassesTo: s,
29
30
  children: r
30
- }) => /* @__PURE__ */ s(g, { layer: !0, children: /* @__PURE__ */ s(
31
- n,
31
+ }) => /* @__PURE__ */ i(h, { layer: !0, children: /* @__PURE__ */ i(
32
+ f,
32
33
  {
33
- theme: e == "light" ? d : v,
34
+ theme: t == "light" ? v : g,
34
35
  prefixCls: "ds",
35
- children: /* @__PURE__ */ s(y, { theme: e, appendClassesTo: m, children: r })
36
+ children: /* @__PURE__ */ i(S, { theme: t, appendClassesTo: s, children: r })
36
37
  }
37
38
  ) });
38
39
  export {