@clickhouse/click-ui 0.6.1-rc2 → 0.6.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 (122) hide show
  1. package/dist/cjs/click-ui.css +623 -11
  2. package/dist/cjs/components/Accordion/Accordion.css +111 -0
  3. package/dist/cjs/components/Accordion/Accordion.module.css.cjs +33 -0
  4. package/dist/cjs/components/Accordion/Accordion.module.css.cjs.map +1 -0
  5. package/dist/cjs/components/Accordion/index.cjs +51 -54
  6. package/dist/cjs/components/Accordion/index.cjs.map +1 -1
  7. package/dist/cjs/components/Alert/Alert.css +169 -0
  8. package/dist/cjs/components/Alert/Alert.module.css.cjs +75 -0
  9. package/dist/cjs/components/Alert/Alert.module.css.cjs.map +1 -0
  10. package/dist/cjs/components/Alert/index.cjs +113 -69
  11. package/dist/cjs/components/Alert/index.cjs.map +1 -1
  12. package/dist/cjs/components/Assets/Icons/Check.cjs +1 -1
  13. package/dist/cjs/components/Assets/Icons/Check.cjs.map +1 -1
  14. package/dist/cjs/components/Assets/Icons/Dollar.cjs +10 -0
  15. package/dist/cjs/components/Assets/Icons/Dollar.cjs.map +1 -0
  16. package/dist/cjs/components/Assets/Icons/Pin.cjs +13 -0
  17. package/dist/cjs/components/Assets/Icons/Pin.cjs.map +1 -0
  18. package/dist/cjs/components/Assets/Icons/Unpin.cjs +17 -0
  19. package/dist/cjs/components/Assets/Icons/Unpin.cjs.map +1 -0
  20. package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs +6 -0
  21. package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs.map +1 -1
  22. package/dist/cjs/components/Button/index.cjs +2 -1
  23. package/dist/cjs/components/Button/index.cjs.map +1 -1
  24. package/dist/cjs/components/Checkbox/index.cjs +1 -11
  25. package/dist/cjs/components/Checkbox/index.cjs.map +1 -1
  26. package/dist/cjs/components/Collapsible/Collapsible.css +79 -0
  27. package/dist/cjs/components/Collapsible/Collapsible.module.css.cjs +31 -0
  28. package/dist/cjs/components/Collapsible/Collapsible.module.css.cjs.map +1 -0
  29. package/dist/cjs/components/Collapsible/IconWrapper.cjs +4 -11
  30. package/dist/cjs/components/Collapsible/IconWrapper.cjs.map +1 -1
  31. package/dist/cjs/components/Collapsible/index.cjs +36 -24
  32. package/dist/cjs/components/Collapsible/index.cjs.map +1 -1
  33. package/dist/cjs/components/Container/Container.css +3 -3
  34. package/dist/cjs/components/HoverCard/HoverCard.css +6 -0
  35. package/dist/cjs/components/HoverCard/HoverCard.module.css.cjs +10 -0
  36. package/dist/cjs/components/HoverCard/HoverCard.module.css.cjs.map +1 -0
  37. package/dist/cjs/components/HoverCard/index.cjs +5 -5
  38. package/dist/cjs/components/HoverCard/index.cjs.map +1 -1
  39. package/dist/cjs/components/Link/Link.css +12 -8
  40. package/dist/cjs/components/Link/Link.module.css.cjs +15 -4
  41. package/dist/cjs/components/Link/Link.module.css.cjs.map +1 -1
  42. package/dist/cjs/components/Link/index.cjs +6 -6
  43. package/dist/cjs/components/Link/index.cjs.map +1 -1
  44. package/dist/cjs/components/Select/common/InternalSelect.cjs +1 -1
  45. package/dist/cjs/components/Select/common/InternalSelect.cjs.map +1 -1
  46. package/dist/cjs/components/SidebarNavigationItem/SidebarNavigationItem.css +167 -0
  47. package/dist/cjs/components/SidebarNavigationItem/SidebarNavigationItem.module.css.cjs +23 -0
  48. package/dist/cjs/components/SidebarNavigationItem/SidebarNavigationItem.module.css.cjs.map +1 -0
  49. package/dist/cjs/components/SidebarNavigationItem/index.cjs +60 -69
  50. package/dist/cjs/components/SidebarNavigationItem/index.cjs.map +1 -1
  51. package/dist/cjs/components/SidebarNavigationTitle/SidebarNavigationTitle.css +76 -0
  52. package/dist/cjs/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.cjs +19 -0
  53. package/dist/cjs/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.cjs.map +1 -0
  54. package/dist/cjs/components/SidebarNavigationTitle/index.cjs +35 -23
  55. package/dist/cjs/components/SidebarNavigationTitle/index.cjs.map +1 -1
  56. package/dist/esm/click-ui.css +623 -11
  57. package/dist/esm/components/Accordion/Accordion.css +111 -0
  58. package/dist/esm/components/Accordion/Accordion.module.css.js +22 -0
  59. package/dist/esm/components/Accordion/Accordion.module.css.js.map +1 -0
  60. package/dist/esm/components/Accordion/index.js +51 -54
  61. package/dist/esm/components/Accordion/index.js.map +1 -1
  62. package/dist/esm/components/Alert/Alert.css +169 -0
  63. package/dist/esm/components/Alert/Alert.module.css.js +53 -0
  64. package/dist/esm/components/Alert/Alert.module.css.js.map +1 -0
  65. package/dist/esm/components/Alert/index.js +113 -69
  66. package/dist/esm/components/Alert/index.js.map +1 -1
  67. package/dist/esm/components/Assets/Icons/Check.js +1 -1
  68. package/dist/esm/components/Assets/Icons/Check.js.map +1 -1
  69. package/dist/esm/components/Assets/Icons/Dollar.js +6 -0
  70. package/dist/esm/components/Assets/Icons/Dollar.js.map +1 -0
  71. package/dist/esm/components/Assets/Icons/Pin.js +9 -0
  72. package/dist/esm/components/Assets/Icons/Pin.js.map +1 -0
  73. package/dist/esm/components/Assets/Icons/Unpin.js +13 -0
  74. package/dist/esm/components/Assets/Icons/Unpin.js.map +1 -0
  75. package/dist/esm/components/Assets/Icons/system/IconsLight.js +6 -0
  76. package/dist/esm/components/Assets/Icons/system/IconsLight.js.map +1 -1
  77. package/dist/esm/components/Button/index.js +2 -1
  78. package/dist/esm/components/Button/index.js.map +1 -1
  79. package/dist/esm/components/Checkbox/index.js +1 -11
  80. package/dist/esm/components/Checkbox/index.js.map +1 -1
  81. package/dist/esm/components/Collapsible/Collapsible.css +79 -0
  82. package/dist/esm/components/Collapsible/Collapsible.module.css.js +21 -0
  83. package/dist/esm/components/Collapsible/Collapsible.module.css.js.map +1 -0
  84. package/dist/esm/components/Collapsible/IconWrapper.js +4 -11
  85. package/dist/esm/components/Collapsible/IconWrapper.js.map +1 -1
  86. package/dist/esm/components/Collapsible/index.js +36 -24
  87. package/dist/esm/components/Collapsible/index.js.map +1 -1
  88. package/dist/esm/components/Container/Container.css +3 -3
  89. package/dist/esm/components/HoverCard/HoverCard.css +6 -0
  90. package/dist/esm/components/HoverCard/HoverCard.module.css.js +6 -0
  91. package/dist/esm/components/HoverCard/HoverCard.module.css.js.map +1 -0
  92. package/dist/esm/components/HoverCard/index.js +5 -5
  93. package/dist/esm/components/HoverCard/index.js.map +1 -1
  94. package/dist/esm/components/Link/Link.css +12 -8
  95. package/dist/esm/components/Link/Link.module.css.js +11 -5
  96. package/dist/esm/components/Link/Link.module.css.js.map +1 -1
  97. package/dist/esm/components/Link/index.js +6 -6
  98. package/dist/esm/components/Link/index.js.map +1 -1
  99. package/dist/esm/components/Select/common/InternalSelect.js +1 -1
  100. package/dist/esm/components/Select/common/InternalSelect.js.map +1 -1
  101. package/dist/esm/components/SidebarNavigationItem/SidebarNavigationItem.css +167 -0
  102. package/dist/esm/components/SidebarNavigationItem/SidebarNavigationItem.module.css.js +16 -0
  103. package/dist/esm/components/SidebarNavigationItem/SidebarNavigationItem.module.css.js.map +1 -0
  104. package/dist/esm/components/SidebarNavigationItem/index.js +60 -69
  105. package/dist/esm/components/SidebarNavigationItem/index.js.map +1 -1
  106. package/dist/esm/components/SidebarNavigationTitle/SidebarNavigationTitle.css +76 -0
  107. package/dist/esm/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.js +12 -0
  108. package/dist/esm/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.js.map +1 -0
  109. package/dist/esm/components/SidebarNavigationTitle/index.js +35 -23
  110. package/dist/esm/components/SidebarNavigationTitle/index.js.map +1 -1
  111. package/dist/types/components/Accordion/Accordion.d.ts +3 -3
  112. package/dist/types/components/Assets/Icons/Dollar.d.ts +3 -0
  113. package/dist/types/components/Assets/Icons/Pin.d.ts +3 -0
  114. package/dist/types/components/Assets/Icons/Unpin.d.ts +3 -0
  115. package/dist/types/components/Assets/Icons/system/types.d.ts +1 -1
  116. package/dist/types/components/Button/Button.d.ts +1 -24
  117. package/dist/types/components/Button/Button.types.d.ts +3 -0
  118. package/dist/types/components/Collapsible/Collapsible.d.ts +3 -3
  119. package/dist/types/components/HoverCard/HoverCard.d.ts +1 -1
  120. package/dist/types/components/SidebarNavigationItem/SidebarNavigationItem.d.ts +9 -5
  121. package/dist/types/components/SidebarNavigationTitle/SidebarNavigationTitle.d.ts +9 -4
  122. package/package.json +1 -1
@@ -0,0 +1,76 @@
1
+ /* stylelint-disable custom-property-pattern -- design tokens use camelCase (e.g. sqlSidebar) */
2
+ .wrapper__ey0v7 {
3
+ /* stylelint-disable plugin/no-unsupported-browser-features, declaration-property-value-no-unknown -- the original styled rule used this
4
+ same width fallback chain (100% → -webkit-fill-available → fill-available →
5
+ stretch) so the title fills the available inline space. */
6
+ width: 100%;
7
+ width: -webkit-fill-available;
8
+ width: fill-available;
9
+ width: stretch;
10
+ /* stylelint-enable plugin/no-unsupported-browser-features, declaration-property-value-no-unknown */
11
+ padding: 0;
12
+ padding-left: var(--title-pad-left);
13
+ overflow: hidden;
14
+ border: none;
15
+ background: transparent;
16
+ white-space: nowrap;
17
+
18
+ /* Not collapsible by default: reserve the icon-column width on the left.
19
+ The single-class modifiers below override this; keep these defaults at
20
+ single-class specificity so they can. */
21
+ --title-pad-left: var(--click-image-sm-size-width);
22
+ }
23
+
24
+ /* Doubled class → specificity (0,2,0). SidebarCollapsibleTitle renders this
25
+ wrapper `as={Collapsible.Trigger}`, so the element also carries
26
+ `.collapsible__trigger`, whose `display/align-items/color/font/cursor`
27
+ resets would otherwise win on CSS-module bundle order and strip the title's
28
+ own typography. The original styled-components cascade resolved in the
29
+ title's favour; the doubled class makes that deterministic. Only the
30
+ properties that actually conflict with the trigger live here — box metrics
31
+ and the `--title-*` custom properties stay single-class above/below so the
32
+ `type`/`collapsible` modifiers still override them. */
33
+ .wrapper__ey0v7.wrapper__ey0v7 {
34
+ display: inline-flex;
35
+ align-items: center;
36
+ color: var(--title-color-default);
37
+ font: var(--click-sidebar-navigation-title-typography-default);
38
+ cursor: pointer;
39
+ }
40
+
41
+ .wrapper__ey0v7.wrapper__ey0v7:hover {
42
+ color: var(--title-color-hover);
43
+ font: var(--click-sidebar-navigation-title-typography-hover);
44
+ }
45
+
46
+ .wrapper__ey0v7.wrapper__ey0v7:active,
47
+ .wrapper__ey0v7.wrapper__ey0v7[data-state='open'],
48
+ .wrapper__ey0v7.wrapper__ey0v7[data-selected='true'] {
49
+ color: var(--title-color-active);
50
+ font: var(--click-sidebar-navigation-title-typography-active);
51
+ }
52
+
53
+ .wrapper__ey0v7 a {
54
+ color: inherit;
55
+ text-decoration: none;
56
+ }
57
+
58
+ .wrapper__ey0v7 a:active {
59
+ color: inherit;
60
+ }
61
+
62
+ .wrapper_type_main__wvTIv {
63
+ --title-color-default: var(--click-sidebar-main-navigation-title-color-default);
64
+ --title-color-hover: var(--click-sidebar-main-navigation-title-color-hover);
65
+ --title-color-active: var(--click-sidebar-main-navigation-title-color-active);
66
+ }
67
+
68
+ .wrapper_type_sql-sidebar__J-qle {
69
+ --title-color-default: var(--click-sidebar-sqlSidebar-navigation-title-color-default);
70
+ --title-color-hover: var(--click-sidebar-sqlSidebar-navigation-title-color-hover);
71
+ --title-color-active: var(--click-sidebar-sqlSidebar-navigation-title-color-active);
72
+ }
73
+
74
+ .wrapper_collapsible_true__8ANnP {
75
+ --title-pad-left: 0;
76
+ }
@@ -0,0 +1,12 @@
1
+ const wrapper = "wrapper__ey0v7";
2
+ const wrapper_type_main = "wrapper_type_main__wvTIv";
3
+ const wrapper_collapsible_true = "wrapper_collapsible_true__8ANnP";
4
+ const styles = {
5
+ wrapper: wrapper,
6
+ wrapper_type_main: wrapper_type_main,
7
+ "wrapper_type_sql-sidebar": "wrapper_type_sql-sidebar__J-qle",
8
+ wrapper_collapsible_true: wrapper_collapsible_true
9
+ };
10
+
11
+ export { styles as default, wrapper, wrapper_collapsible_true, wrapper_type_main };
12
+ //# sourceMappingURL=SidebarNavigationTitle.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarNavigationTitle.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1,7 +1,41 @@
1
+ import "./SidebarNavigationTitle.css";
1
2
  import { jsx } from 'react/jsx-runtime';
2
- import { styled } from 'styled-components';
3
+ import { forwardRef } from 'react';
4
+ import { cn } from '../../lib/cva.js';
3
5
  import { IconWrapper } from '../Collapsible/IconWrapper.js';
6
+ import styles from './SidebarNavigationTitle.module.css.js';
7
+ import { cva } from 'class-variance-authority';
4
8
 
9
+ const wrapperVariants = cva(styles.wrapper, {
10
+ variants: {
11
+ type: {
12
+ main: styles.wrapper_type_main,
13
+ sqlSidebar: styles["wrapper_type_sql-sidebar"]
14
+ },
15
+ collapsible: {
16
+ true: styles.wrapper_collapsible_true,
17
+ false: ""
18
+ }
19
+ },
20
+ defaultVariants: {
21
+ type: "main",
22
+ collapsible: false
23
+ }
24
+ });
25
+ const _SidebarTitleWrapper = ({
26
+ as,
27
+ $collapsible = false,
28
+ $type = "main",
29
+ className,
30
+ ...props
31
+ }, ref) => {
32
+ const Component = as ?? "button";
33
+ return /* @__PURE__ */ jsx(Component, { ref, ...props, className: cn(wrapperVariants({
34
+ type: $type,
35
+ collapsible: $collapsible
36
+ }), className) });
37
+ };
38
+ const SidebarTitleWrapper = forwardRef(_SidebarTitleWrapper);
5
39
  const SidebarNavigationTitle = ({
6
40
  label,
7
41
  icon,
@@ -12,28 +46,6 @@ const SidebarNavigationTitle = ({
12
46
  }) => {
13
47
  return /* @__PURE__ */ jsx(SidebarTitleWrapper, { "data-selected": selected, $type: type, ...props, children: /* @__PURE__ */ jsx(IconWrapper, { icon, iconDir, children: label }) });
14
48
  };
15
- const SidebarTitleWrapper = styled.button.withConfig({
16
- componentId: "sc-1rg1a4o-0"
17
- })(["display:inline-flex;align-items:center;background:transparent;border:none;width:100%;width:-webkit-fill-available;width:fill-available;width:stretch;white-space:nowrap;overflow:hidden;cursor:pointer;", " a{color:inherit;text-decoration:none;&:active{color:inherit;}}"], ({
18
- theme,
19
- $collapsible = false,
20
- $type
21
- }) => `
22
- padding: 0;
23
- padding-left: ${$collapsible ? 0 : theme.click.image.sm.size.width};
24
- font: ${theme.click.sidebar.navigation.title.typography.default};
25
- color: ${theme.click.sidebar[$type].navigation.title.color.default};
26
-
27
- &:hover {
28
- font: ${theme.click.sidebar.navigation.title.typography.hover};
29
- color: ${theme.click.sidebar[$type].navigation.title.color.hover};
30
- }
31
-
32
- &:active, &[data-state="open"], &[data-selected="true"] {
33
- font: ${theme.click.sidebar.navigation.title.typography.active};
34
- color: ${theme.click.sidebar[$type].navigation.title.color.active};
35
- }
36
- `);
37
49
 
38
50
  export { SidebarNavigationTitle, SidebarTitleWrapper };
39
51
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/SidebarNavigationTitle/SidebarNavigationTitle.tsx"],"sourcesContent":["import { styled } from 'styled-components';\nimport { IconWrapper } from '@/components/Collapsible/IconWrapper';\nimport { SidebarNavigationTitleProps } from './SidebarNavigationTitle.types';\n\nexport const SidebarNavigationTitle = ({\n label,\n icon,\n iconDir,\n selected,\n type = 'main',\n ...props\n}: SidebarNavigationTitleProps) => {\n return (\n <SidebarTitleWrapper\n data-selected={selected}\n $type={type}\n {...props}\n >\n <IconWrapper\n icon={icon}\n iconDir={iconDir}\n >\n {label}\n </IconWrapper>\n </SidebarTitleWrapper>\n );\n};\nexport const SidebarTitleWrapper = styled.button<{\n $collapsible?: boolean;\n $type: 'main' | 'sqlSidebar';\n}>`\n display: inline-flex;\n align-items: center;\n background: transparent;\n border: none;\n width: 100%;\n width: -webkit-fill-available;\n width: fill-available;\n width: stretch;\n white-space: nowrap;\n overflow: hidden;\n cursor: pointer;\n ${({ theme, $collapsible = false, $type }) => `\n padding: 0;\n padding-left: ${$collapsible ? 0 : theme.click.image.sm.size.width};\n font: ${theme.click.sidebar.navigation.title.typography.default};\n color: ${theme.click.sidebar[$type].navigation.title.color.default};\n\n &:hover {\n font: ${theme.click.sidebar.navigation.title.typography.hover};\n color: ${theme.click.sidebar[$type].navigation.title.color.hover};\n }\n\n &:active, &[data-state=\"open\"], &[data-selected=\"true\"] {\n font: ${theme.click.sidebar.navigation.title.typography.active};\n color: ${theme.click.sidebar[$type].navigation.title.color.active};\n }\n `}\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:active {\n color: inherit;\n }\n }\n`;\n"],"names":["SidebarNavigationTitle","label","icon","iconDir","selected","type","props","SidebarTitleWrapper","styled","button","withConfig","componentId","theme","$collapsible","$type","click","image","sm","size","width","sidebar","navigation","title","typography","default","color","hover","active"],"mappings":";;;;AAIO,MAAMA,yBAAyBA,CAAC;AAAA,EACrCC,KAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,IAAAA,GAAO,MAAA;AAAA,EACP,GAAGC;AACwB,CAAA,KAAM;AACjC,EAAA,uBACE,GAAA,CAAC,mBAAA,EAAA,EACC,eAAA,EAAeF,QAAAA,EACf,KAAA,EAAOC,IAAAA,EACP,GAAIC,KAAAA,EAEJ,QAAA,kBAAA,GAAA,CAAC,WAAA,EAAA,EACC,IAAA,EACA,OAAA,EAECL,iBACH,CAAA,EACF,CAAA;AAEJ;AACO,MAAMM,mBAAAA,GAAsBC,MAAAA,CAAOC,MAAAA,CAAMC,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,yMAAA,EAAA,iEAAA,GAe5C,CAAC;AAAA,EAAEC,KAAAA;AAAAA,EAAOC,YAAAA,GAAe,KAAA;AAAA,EAAOC;AAAM,CAAA,KAAM;AAAA;AAAA,kBAAA,EAE5BD,eAAe,CAAA,GAAID,KAAAA,CAAMG,MAAMC,KAAAA,CAAMC,EAAAA,CAAGC,KAAKC,KAAK,CAAA;AAAA,UAAA,EAC1DP,MAAMG,KAAAA,CAAMK,OAAAA,CAAQC,UAAAA,CAAWC,KAAAA,CAAMC,WAAWC,OAAO,CAAA;AAAA,WAAA,EACtDZ,KAAAA,CAAMG,MAAMK,OAAAA,CAAQN,KAAK,EAAEO,UAAAA,CAAWC,KAAAA,CAAMG,MAAMD,OAAO,CAAA;;AAAA;AAAA,YAAA,EAGxDZ,MAAMG,KAAAA,CAAMK,OAAAA,CAAQC,UAAAA,CAAWC,KAAAA,CAAMC,WAAWG,KAAK,CAAA;AAAA,aAAA,EACpDd,KAAAA,CAAMG,MAAMK,OAAAA,CAAQN,KAAK,EAAEO,UAAAA,CAAWC,KAAAA,CAAMG,MAAMC,KAAK,CAAA;AAAA;;AAAA;AAAA,YAAA,EAIxDd,MAAMG,KAAAA,CAAMK,OAAAA,CAAQC,UAAAA,CAAWC,KAAAA,CAAMC,WAAWI,MAAM,CAAA;AAAA,aAAA,EACrDf,KAAAA,CAAMG,MAAMK,OAAAA,CAAQN,KAAK,EAAEO,UAAAA,CAAWC,KAAAA,CAAMG,MAAME,MAAM,CAAA;AAAA;AAAA,EAAA,CAEpE;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/SidebarNavigationTitle/SidebarNavigationTitle.tsx"],"sourcesContent":["import {\n ComponentProps,\n ComponentPropsWithRef,\n ElementType,\n ReactNode,\n forwardRef,\n} from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport { IconWrapper } from '@/components/Collapsible/IconWrapper';\nimport { SidebarNavigationTitleProps } from './SidebarNavigationTitle.types';\nimport styles from './SidebarNavigationTitle.module.css';\n\nconst wrapperVariants = cva(styles.wrapper, {\n variants: {\n type: {\n main: styles.wrapper_type_main,\n sqlSidebar: styles['wrapper_type_sql-sidebar'],\n },\n collapsible: { true: styles.wrapper_collapsible_true, false: '' },\n },\n defaultVariants: { type: 'main', collapsible: false },\n});\n\n// Polymorphic wrapper: SidebarCollapsibleTitle renders it `as={Collapsible.Trigger}`.\n// Same shape as the Container polymorphic component (src/components/Container).\nexport interface SidebarTitleWrapperProps<T extends ElementType = 'button'> {\n as?: T;\n $collapsible?: boolean;\n $type?: 'main' | 'sqlSidebar';\n}\n\ntype SidebarTitleWrapperComponent = <T extends ElementType = 'button'>(\n props: Omit<ComponentProps<T>, keyof SidebarTitleWrapperProps<T>> &\n SidebarTitleWrapperProps<T>\n) => ReactNode;\n\nconst _SidebarTitleWrapper = <T extends ElementType = 'button'>(\n {\n as,\n $collapsible = false,\n $type = 'main',\n className,\n ...props\n }: Omit<ComponentProps<T>, keyof SidebarTitleWrapperProps<T>> &\n SidebarTitleWrapperProps<T>,\n ref: ComponentPropsWithRef<T>['ref']\n) => {\n const Component = as ?? 'button';\n return (\n <Component\n ref={ref}\n {...props}\n className={cn(\n wrapperVariants({ type: $type, collapsible: $collapsible }),\n className\n )}\n />\n );\n};\n\nexport const SidebarTitleWrapper: SidebarTitleWrapperComponent =\n forwardRef(_SidebarTitleWrapper);\n\nexport const SidebarNavigationTitle = ({\n label,\n icon,\n iconDir,\n selected,\n type = 'main',\n ...props\n}: SidebarNavigationTitleProps) => {\n return (\n <SidebarTitleWrapper\n data-selected={selected}\n $type={type}\n {...props}\n >\n <IconWrapper\n icon={icon}\n iconDir={iconDir}\n >\n {label}\n </IconWrapper>\n </SidebarTitleWrapper>\n );\n};\n"],"names":["wrapperVariants","cva","styles","wrapper","variants","type","main","wrapper_type_main","sqlSidebar","collapsible","true","wrapper_collapsible_true","false","defaultVariants","_SidebarTitleWrapper","as","$collapsible","$type","className","props","ref","Component","cn","SidebarTitleWrapper","forwardRef","SidebarNavigationTitle","label","icon","iconDir","selected"],"mappings":";;;;;;;AAYA,MAAMA,eAAAA,GAAkBC,GAAAA,CAAIC,MAAAA,CAAOC,OAAAA,EAAS;AAAA,EAC1CC,QAAAA,EAAU;AAAA,IACRC,IAAAA,EAAM;AAAA,MACJC,MAAMJ,MAAAA,CAAOK,iBAAAA;AAAAA,MACbC,UAAAA,EAAYN,OAAO,0BAA0B;AAAA,KAC/C;AAAA,IACAO,WAAAA,EAAa;AAAA,MAAEC,MAAMR,MAAAA,CAAOS,wBAAAA;AAAAA,MAA0BC,KAAAA,EAAO;AAAA;AAAG,GAClE;AAAA,EACAC,eAAAA,EAAiB;AAAA,IAAER,IAAAA,EAAM,MAAA;AAAA,IAAQI,WAAAA,EAAa;AAAA;AAChD,CAAC,CAAA;AAeD,MAAMK,uBAAuB,CAC3B;AAAA,EACEC,EAAAA;AAAAA,EACAC,YAAAA,GAAe,KAAA;AAAA,EACfC,KAAAA,GAAQ,MAAA;AAAA,EACRC,SAAAA;AAAAA,EACA,GAAGC;AAEuB,CAAA,EAC5BC,GAAAA,KACG;AACH,EAAA,MAAMC,YAAYN,EAAAA,IAAM,QAAA;AACxB,EAAA,2BACG,SAAA,EAAA,EACC,GAAA,KACII,KAAAA,EACJ,SAAA,EAAWG,GACTtB,eAAAA,CAAgB;AAAA,IAAEK,IAAAA,EAAMY,KAAAA;AAAAA,IAAOR,WAAAA,EAAaO;AAAAA,GAAc,CAAA,EAC1DE,SACF,CAAA,EAAE,CAAA;AAGR,CAAA;AAEO,MAAMK,mBAAAA,GACXC,WAAWV,oBAAoB;AAE1B,MAAMW,yBAAyBA,CAAC;AAAA,EACrCC,KAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAxB,IAAAA,GAAO,MAAA;AAAA,EACP,GAAGc;AACwB,CAAA,KAAM;AACjC,EAAA,uBACE,GAAA,CAAC,mBAAA,EAAA,EACC,eAAA,EAAeU,QAAAA,EACf,KAAA,EAAOxB,IAAAA,EACP,GAAIc,KAAAA,EAEJ,QAAA,kBAAA,GAAA,CAAC,WAAA,EAAA,EACC,IAAA,EACA,OAAA,EAECO,iBACH,CAAA,EACF,CAAA;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
1
  import { AccordionProps } from './Accordion.types';
2
- declare const SidebarAccordion: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<AccordionProps, never>> & string & Omit<({ title, size, color, icon, iconSize, gap, children, fillWidth, ...delegated }: AccordionProps) => import("react/jsx-runtime").JSX.Element, keyof import('react').Component<any, {}, any>>;
3
- declare const AccordionToExport: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<AccordionProps, never>> & string & Omit<({ title, size, color, icon, iconSize, gap, children, fillWidth, ...delegated }: AccordionProps) => import("react/jsx-runtime").JSX.Element, keyof import('react').Component<any, {}, any>>;
4
- export { AccordionToExport as Accordion, SidebarAccordion };
2
+ declare const Accordion: ({ title, size, color, icon, iconSize, gap, children, fillWidth, className, ...delegated }: AccordionProps) => import("react/jsx-runtime").JSX.Element;
3
+ declare const SidebarAccordion: ({ className, ...props }: AccordionProps) => import("react/jsx-runtime").JSX.Element;
4
+ export { Accordion, SidebarAccordion };
@@ -0,0 +1,3 @@
1
+ import { SVGAssetProps } from '../../../types';
2
+ declare const Dollar: (props: SVGAssetProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default Dollar;
@@ -0,0 +1,3 @@
1
+ import { SVGAssetProps } from '../../../types';
2
+ declare const Pin: (props: SVGAssetProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default Pin;
@@ -0,0 +1,3 @@
1
+ import { SVGAssetProps } from '../../../types';
2
+ declare const Unpin: (props: SVGAssetProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default Unpin;
@@ -1,7 +1,7 @@
1
1
  import { SVGAttributes } from 'react';
2
2
  import { AssetSize } from '../../../../types';
3
3
  import { ThemeName } from '../../../../theme/theme.types';
4
- export type IconName = 'activity' | 'alarm' | 'arrow-directions' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-triangle' | 'arrow-up' | 'auth-app' | 'auth-sms' | 'backups' | 'bar-chart' | 'bell' | 'beta' | 'blog' | 'bold' | 'book' | 'brackets' | 'briefcase' | 'building' | 'burger-menu' | 'calendar' | 'calendar-with-time' | 'cards' | 'cell-tower' | 'chart-area' | 'chart-bar-horizontal' | 'chart-cloud' | 'chart-donut' | 'chart-heatmap' | 'chart-scatter' | 'chart-square' | 'chart-stacked-horizontal' | 'chart-stacked-vertical' | 'chat' | 'check' | 'check-in-circle' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'chevron-up' | 'circle' | 'clock' | 'cloud' | 'cloud-keys' | 'code' | 'code-in-square' | 'collapse-all' | 'connect' | 'connect-alt' | 'console' | 'copy' | 'cpu' | 'credit-card' | 'cross' | 'data' | 'data-lakes' | 'database' | 'disk' | 'display' | 'document' | 'dot' | 'dots-horizontal' | 'dots-triangle' | 'dots-vertical' | 'dots-vertical-double' | 'double-check' | 'download' | 'download-in-circle' | 'email' | 'empty' | 'enter' | 'expand-all' | 'eye' | 'eye-closed' | 'filter' | 'fire' | 'flag' | 'flash' | 'flask' | 'folder-closed' | 'folder-open' | 'gear' | 'gift' | 'git-merge' | 'globe' | 'hexagon' | 'history' | 'home' | 'horizontal-loading' | 'http' | 'http-monitoring' | 'info-in-circle' | 'information' | 'insert-row' | 'integrations' | 'italic' | 'key' | 'keys' | 'lifebuoy' | 'light-bulb' | 'light-bulb-on' | 'lightening' | 'line-in-circle' | 'list-bulleted' | 'list-numbered' | 'loading' | 'loading-animated' | 'lock' | 'map-pin' | 'mcp' | 'metrics' | 'metrics-alt' | 'minus' | 'moon' | 'no-cloud' | 'pause' | 'payment' | 'pencil' | 'pie-chart' | 'pipe' | 'play' | 'play-in-circle' | 'plug' | 'plus' | 'popin' | 'popout' | 'popover-arrow' | 'puzzle-piece' | 'query' | 'question' | 'refresh' | 'resize-arrows-horizontal' | 'resize-arrows-vertical' | 'rocket' | 'sand-glass' | 'search' | 'secure' | 'server' | 'services' | 'settings' | 'share' | 'share-arrow' | 'share-network' | 'sleep' | 'slide-in' | 'slide-out' | 'sort' | 'sort-alt' | 'sparkle' | 'speaker' | 'speed' | 'square' | 'star' | 'stop' | 'support' | 'table' | 'taxi' | 'text-slash' | 'thumbs-down' | 'thumbs-up' | 'trash' | 'tree-structure' | 'underline' | 'upgrade' | 'upload' | 'url' | 'user' | 'users' | 'warning' | 'waves';
4
+ export type IconName = 'activity' | 'alarm' | 'arrow-directions' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-triangle' | 'arrow-up' | 'auth-app' | 'auth-sms' | 'backups' | 'bar-chart' | 'bell' | 'beta' | 'blog' | 'bold' | 'book' | 'brackets' | 'briefcase' | 'building' | 'burger-menu' | 'calendar' | 'calendar-with-time' | 'cards' | 'cell-tower' | 'chart-area' | 'chart-bar-horizontal' | 'chart-cloud' | 'chart-donut' | 'chart-heatmap' | 'chart-scatter' | 'chart-square' | 'chart-stacked-horizontal' | 'chart-stacked-vertical' | 'chat' | 'check' | 'check-in-circle' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'chevron-up' | 'circle' | 'clock' | 'cloud' | 'cloud-keys' | 'code' | 'code-in-square' | 'collapse-all' | 'connect' | 'connect-alt' | 'console' | 'copy' | 'cpu' | 'credit-card' | 'cross' | 'data' | 'data-lakes' | 'database' | 'disk' | 'display' | 'document' | 'dollar' | 'dot' | 'dots-horizontal' | 'dots-triangle' | 'dots-vertical' | 'dots-vertical-double' | 'double-check' | 'download' | 'download-in-circle' | 'email' | 'empty' | 'enter' | 'expand-all' | 'eye' | 'eye-closed' | 'filter' | 'fire' | 'flag' | 'flash' | 'flask' | 'folder-closed' | 'folder-open' | 'gear' | 'gift' | 'git-merge' | 'globe' | 'hexagon' | 'history' | 'home' | 'horizontal-loading' | 'http' | 'http-monitoring' | 'info-in-circle' | 'information' | 'insert-row' | 'integrations' | 'italic' | 'key' | 'keys' | 'lifebuoy' | 'light-bulb' | 'light-bulb-on' | 'lightening' | 'line-in-circle' | 'list-bulleted' | 'list-numbered' | 'loading' | 'loading-animated' | 'lock' | 'map-pin' | 'mcp' | 'metrics' | 'metrics-alt' | 'minus' | 'moon' | 'no-cloud' | 'pause' | 'payment' | 'pencil' | 'pie-chart' | 'pin' | 'pipe' | 'play' | 'play-in-circle' | 'plug' | 'plus' | 'popin' | 'popout' | 'popover-arrow' | 'puzzle-piece' | 'query' | 'question' | 'refresh' | 'resize-arrows-horizontal' | 'resize-arrows-vertical' | 'rocket' | 'sand-glass' | 'search' | 'secure' | 'server' | 'services' | 'settings' | 'share' | 'share-arrow' | 'share-network' | 'sleep' | 'slide-in' | 'slide-out' | 'sort' | 'sort-alt' | 'sparkle' | 'speaker' | 'speed' | 'square' | 'star' | 'stop' | 'support' | 'table' | 'taxi' | 'text-slash' | 'thumbs-down' | 'thumbs-up' | 'trash' | 'tree-structure' | 'underline' | 'unpin' | 'upgrade' | 'upload' | 'url' | 'user' | 'users' | 'warning' | 'waves';
5
5
  export interface IconProps extends SVGAttributes<SVGElement> {
6
6
  name: IconName;
7
7
  theme?: ThemeName;
@@ -1,25 +1,2 @@
1
- import { IconName } from '../Icon';
2
- export type ButtonType = 'primary' | 'secondary' | 'empty' | 'danger';
3
- type Alignment = 'center' | 'left';
4
- export interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
5
- /** The visual style variant of the button */
6
- type?: ButtonType;
7
- /** Whether the button is disabled */
8
- disabled?: boolean;
9
- /** The text label to display in the button */
10
- label?: string;
11
- /** Icon to display on the left side of the label */
12
- iconLeft?: IconName;
13
- /** Icon to display on the right side of the label */
14
- iconRight?: IconName;
15
- /** Alignment of the button content */
16
- align?: Alignment;
17
- /** Whether the button should fill the full width of its container */
18
- fillWidth?: boolean;
19
- /** Whether to show a loading state */
20
- loading?: boolean;
21
- /** Whether the button should be focused on mount */
22
- autoFocus?: boolean;
23
- }
1
+ import { ButtonProps } from './Button.types';
24
2
  export declare const Button: import('react').ForwardRefExoticComponent<ButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
25
- export {};
@@ -2,7 +2,10 @@ import { IconName } from '../Icon';
2
2
  export type ButtonType = 'primary' | 'secondary' | 'empty' | 'danger';
3
3
  export type Alignment = 'center' | 'left';
4
4
  export interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
5
+ /** The visual style variant of the button */
5
6
  type?: ButtonType;
7
+ /** Used for native button type attribute */
8
+ htmlType?: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
6
9
  disabled?: boolean;
7
10
  label?: string;
8
11
  iconLeft?: IconName;
@@ -3,14 +3,14 @@ import { ImageName } from '../Icon';
3
3
  import { HorizontalDirection } from '../../types';
4
4
  import { CollapsibleProps } from './Collapsible.types';
5
5
  export declare const Collapsible: {
6
- ({ open: openProp, onOpenChange: onOpenChangeProp, children, ...props }: CollapsibleProps): import("react/jsx-runtime").JSX.Element;
6
+ ({ open: openProp, onOpenChange: onOpenChangeProp, children, className, ...props }: CollapsibleProps): import("react/jsx-runtime").JSX.Element;
7
7
  Header: import('react').ForwardRefExoticComponent<CollapsipleHeaderProps & import('react').RefAttributes<HTMLDivElement>>;
8
8
  Trigger: {
9
- ({ onClick: onClickProp, children, indicatorDir, icon, iconDir, ...props }: CollapsipleTriggerProps): import("react/jsx-runtime").JSX.Element;
9
+ ({ onClick: onClickProp, children, indicatorDir, icon, iconDir, className, ...props }: CollapsipleTriggerProps): import("react/jsx-runtime").JSX.Element;
10
10
  displayName: string;
11
11
  };
12
12
  Content: {
13
- ({ indicatorDir, ...props }: HTMLAttributes<HTMLDivElement> & {
13
+ ({ indicatorDir, className, ...props }: HTMLAttributes<HTMLDivElement> & {
14
14
  indicatorDir?: HorizontalDirection;
15
15
  }): import("react/jsx-runtime").JSX.Element | undefined;
16
16
  displayName: string;
@@ -9,7 +9,7 @@ export interface HoverCardContentProps extends RadixHoverCard.HoverCardContentPr
9
9
  export declare const HoverCard: {
10
10
  ({ children, ...props }: RadixHoverCard.HoverCardProps): import("react/jsx-runtime").JSX.Element;
11
11
  Trigger: {
12
- ({ children, ...props }: RadixHoverCard.HoverCardTriggerProps): import("react/jsx-runtime").JSX.Element;
12
+ ({ children, className, ...props }: RadixHoverCard.HoverCardTriggerProps): import("react/jsx-runtime").JSX.Element;
13
13
  displayName: string;
14
14
  };
15
15
  Content: {
@@ -1,8 +1,12 @@
1
+ import { ComponentProps, ElementType, ReactNode } from 'react';
1
2
  import { SidebarNavigationItemProps } from './SidebarNavigationItem.types';
2
- declare const SidebarNavigationItem: import('react').ForwardRefExoticComponent<SidebarNavigationItemProps & import('react').RefAttributes<HTMLDivElement>>;
3
- export declare const SidebarItemWrapper: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
3
+ export interface SidebarItemWrapperProps<T extends ElementType = 'div'> {
4
+ as?: T;
4
5
  $collapsible?: boolean;
5
- $level: number;
6
- $type: "main" | "sqlSidebar";
7
- }>> & string;
6
+ $level?: number;
7
+ $type?: 'main' | 'sqlSidebar';
8
+ }
9
+ type SidebarItemWrapperComponent = <T extends ElementType = 'div'>(props: Omit<ComponentProps<T>, keyof SidebarItemWrapperProps<T>> & SidebarItemWrapperProps<T>) => ReactNode;
10
+ export declare const SidebarItemWrapper: SidebarItemWrapperComponent;
11
+ declare const SidebarNavigationItem: import('react').ForwardRefExoticComponent<SidebarNavigationItemProps & import('react').RefAttributes<HTMLDivElement>>;
8
12
  export { SidebarNavigationItem };
@@ -1,6 +1,11 @@
1
+ import { ComponentProps, ElementType, ReactNode } from 'react';
1
2
  import { SidebarNavigationTitleProps } from './SidebarNavigationTitle.types';
2
- export declare const SidebarNavigationTitle: ({ label, icon, iconDir, selected, type, ...props }: SidebarNavigationTitleProps) => import("react/jsx-runtime").JSX.Element;
3
- export declare const SidebarTitleWrapper: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
3
+ export interface SidebarTitleWrapperProps<T extends ElementType = 'button'> {
4
+ as?: T;
4
5
  $collapsible?: boolean;
5
- $type: "main" | "sqlSidebar";
6
- }>> & string;
6
+ $type?: 'main' | 'sqlSidebar';
7
+ }
8
+ type SidebarTitleWrapperComponent = <T extends ElementType = 'button'>(props: Omit<ComponentProps<T>, keyof SidebarTitleWrapperProps<T>> & SidebarTitleWrapperProps<T>) => ReactNode;
9
+ export declare const SidebarTitleWrapper: SidebarTitleWrapperComponent;
10
+ export declare const SidebarNavigationTitle: ({ label, icon, iconDir, selected, type, ...props }: SidebarNavigationTitleProps) => import("react/jsx-runtime").JSX.Element;
11
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickhouse/click-ui",
3
- "version": "v0.6.1-rc2",
3
+ "version": "v0.6.1",
4
4
  "description": "Official ClickHouse design system react library",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",