@cocso-ui/react 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/dist/cjs/accordion/Accordion.d.ts +15 -0
  2. package/dist/cjs/accordion/Accordion.js +71 -0
  3. package/dist/cjs/accordion/Accordion.module.css.js +9 -0
  4. package/dist/cjs/button/Button.d.ts +23 -0
  5. package/dist/cjs/button/Button.js +115 -0
  6. package/dist/cjs/button/Button.module.css.js +9 -0
  7. package/dist/cjs/checkbox/Checkbox.d.ts +18 -0
  8. package/dist/cjs/checkbox/Checkbox.js +115 -0
  9. package/dist/cjs/checkbox/Checkbox.module.css.js +9 -0
  10. package/dist/cjs/dropdown/Dropdown.d.ts +11 -0
  11. package/dist/cjs/dropdown/Dropdown.js +55 -0
  12. package/dist/cjs/dropdown/Dropdown.module.css.js +9 -0
  13. package/dist/cjs/index.d.ts +19 -0
  14. package/dist/cjs/index.js +53 -0
  15. package/dist/cjs/link/Link.d.ts +16 -0
  16. package/dist/cjs/link/Link.js +35 -0
  17. package/dist/cjs/link/Link.module.css.js +9 -0
  18. package/dist/cjs/modal/Modal.d.ts +12 -0
  19. package/dist/cjs/modal/Modal.js +103 -0
  20. package/dist/cjs/modal/Modal.module.css.js +9 -0
  21. package/dist/cjs/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +28 -0
  22. package/dist/cjs/one-time-password-field/OneTimePasswordField.d.ts +8 -0
  23. package/dist/cjs/one-time-password-field/OneTimePasswordField.js +52 -0
  24. package/dist/cjs/one-time-password-field/OneTimePasswordField.module.css.js +9 -0
  25. package/dist/cjs/pagination/Pagination.d.ts +13 -0
  26. package/dist/cjs/pagination/Pagination.js +83 -0
  27. package/dist/cjs/pagination/Pagination.module.css.js +9 -0
  28. package/dist/cjs/popover/Popover.d.ts +10 -0
  29. package/dist/cjs/popover/Popover.js +44 -0
  30. package/dist/cjs/popover/Popover.module.css.js +9 -0
  31. package/dist/cjs/select/Select.d.ts +12 -0
  32. package/dist/cjs/select/Select.js +84 -0
  33. package/dist/cjs/select/Select.module.css.js +9 -0
  34. package/dist/cjs/spinner/Spinner.d.ts +14 -0
  35. package/dist/cjs/spinner/Spinner.js +40 -0
  36. package/dist/cjs/spinner/Spinner.module.css.js +9 -0
  37. package/dist/cjs/stock-quantity-status/StockQuantityStatus.d.ts +12 -0
  38. package/dist/cjs/stock-quantity-status/StockQuantityStatus.js +105 -0
  39. package/dist/cjs/stock-quantity-status/StockQuantityStatus.module.css.js +9 -0
  40. package/dist/cjs/switch/Switch.d.ts +16 -0
  41. package/dist/cjs/switch/Switch.js +89 -0
  42. package/dist/cjs/switch/Switch.module.css.js +9 -0
  43. package/dist/cjs/tab/Tab.d.ts +10 -0
  44. package/dist/cjs/tab/Tab.js +64 -0
  45. package/dist/{token → cjs/token}/color.d.ts +3 -1
  46. package/dist/cjs/token/color.js +84 -0
  47. package/dist/{token → cjs/token}/spacing.d.ts +3 -1
  48. package/dist/cjs/token/spacing.js +29 -0
  49. package/dist/{token → cjs/token}/typography.d.ts +10 -7
  50. package/dist/cjs/token/typography.js +50 -0
  51. package/dist/cjs/typography/Typography.d.ts +33 -0
  52. package/dist/cjs/typography/Typography.js +90 -0
  53. package/dist/cjs/typography/Typography.module.css.js +9 -0
  54. package/dist/esm/accordion/Accordion.d.mts +15 -0
  55. package/dist/esm/accordion/Accordion.mjs +50 -0
  56. package/dist/esm/accordion/Accordion.module.css.mjs +7 -0
  57. package/dist/esm/button/Button.d.mts +23 -0
  58. package/dist/esm/button/Button.mjs +113 -0
  59. package/dist/esm/button/Button.module.css.mjs +7 -0
  60. package/dist/esm/checkbox/Checkbox.d.mts +18 -0
  61. package/dist/esm/checkbox/Checkbox.mjs +94 -0
  62. package/dist/esm/checkbox/Checkbox.module.css.mjs +7 -0
  63. package/dist/esm/dropdown/Dropdown.d.mts +11 -0
  64. package/dist/esm/dropdown/Dropdown.mjs +34 -0
  65. package/dist/esm/dropdown/Dropdown.module.css.mjs +7 -0
  66. package/dist/esm/index.d.mts +19 -0
  67. package/dist/esm/index.mjs +19 -0
  68. package/dist/esm/link/Link.d.mts +16 -0
  69. package/dist/esm/link/Link.mjs +33 -0
  70. package/dist/esm/link/Link.module.css.mjs +7 -0
  71. package/dist/esm/modal/Modal.d.mts +12 -0
  72. package/dist/esm/modal/Modal.mjs +82 -0
  73. package/dist/esm/modal/Modal.module.css.mjs +7 -0
  74. package/dist/esm/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs +26 -0
  75. package/dist/esm/one-time-password-field/OneTimePasswordField.d.mts +8 -0
  76. package/dist/esm/one-time-password-field/OneTimePasswordField.mjs +31 -0
  77. package/dist/esm/one-time-password-field/OneTimePasswordField.module.css.mjs +7 -0
  78. package/dist/esm/pagination/Pagination.d.mts +13 -0
  79. package/dist/esm/pagination/Pagination.mjs +81 -0
  80. package/dist/esm/pagination/Pagination.module.css.mjs +7 -0
  81. package/dist/esm/popover/Popover.d.mts +10 -0
  82. package/dist/esm/popover/Popover.mjs +23 -0
  83. package/dist/esm/popover/Popover.module.css.mjs +7 -0
  84. package/dist/esm/select/Select.d.mts +12 -0
  85. package/dist/esm/select/Select.mjs +82 -0
  86. package/dist/esm/select/Select.module.css.mjs +7 -0
  87. package/dist/esm/spinner/Spinner.d.mts +14 -0
  88. package/dist/esm/spinner/Spinner.mjs +38 -0
  89. package/dist/esm/spinner/Spinner.module.css.mjs +7 -0
  90. package/dist/esm/stock-quantity-status/StockQuantityStatus.d.mts +12 -0
  91. package/dist/esm/stock-quantity-status/StockQuantityStatus.mjs +102 -0
  92. package/dist/esm/stock-quantity-status/StockQuantityStatus.module.css.mjs +7 -0
  93. package/dist/esm/switch/Switch.d.mts +16 -0
  94. package/dist/esm/switch/Switch.mjs +68 -0
  95. package/dist/esm/switch/Switch.module.css.mjs +7 -0
  96. package/dist/esm/tab/Tab.d.mts +10 -0
  97. package/dist/esm/tab/Tab.mjs +43 -0
  98. package/dist/esm/token/color.d.mts +82 -0
  99. package/dist/esm/token/color.mjs +82 -0
  100. package/dist/esm/token/spacing.d.mts +27 -0
  101. package/dist/esm/token/spacing.mjs +27 -0
  102. package/dist/esm/token/typography.d.mts +47 -0
  103. package/dist/esm/token/typography.mjs +46 -0
  104. package/dist/esm/typography/Typography.d.mts +33 -0
  105. package/dist/esm/typography/Typography.mjs +88 -0
  106. package/dist/esm/typography/Typography.module.css.mjs +7 -0
  107. package/package.json +33 -26
  108. package/dist/accordion/Accordion.d.ts +0 -12
  109. package/dist/accordion/index.d.ts +0 -1
  110. package/dist/body/Body.d.ts +0 -11
  111. package/dist/body/index.d.ts +0 -1
  112. package/dist/button/Button.d.ts +0 -18
  113. package/dist/button/index.d.ts +0 -1
  114. package/dist/checkbox/Checkbox.d.ts +0 -13
  115. package/dist/checkbox/index.d.ts +0 -1
  116. package/dist/display/Display.d.ts +0 -11
  117. package/dist/display/index.d.ts +0 -1
  118. package/dist/dropdown/Dropdown.d.ts +0 -7
  119. package/dist/dropdown/index.d.ts +0 -1
  120. package/dist/heading/Heading.d.ts +0 -10
  121. package/dist/heading/index.d.ts +0 -1
  122. package/dist/index.cjs +0 -1
  123. package/dist/index.css +0 -1
  124. package/dist/index.d.ts +0 -20
  125. package/dist/index.js +0 -1
  126. package/dist/link/Link.d.ts +0 -11
  127. package/dist/link/index.d.ts +0 -1
  128. package/dist/modal/Modal.d.ts +0 -8
  129. package/dist/modal/index.d.ts +0 -1
  130. package/dist/one-time-password-field/OneTimePasswordField.d.ts +0 -4
  131. package/dist/one-time-password-field/index.d.ts +0 -1
  132. package/dist/pagination/Pagination.d.ts +0 -8
  133. package/dist/pagination/index.d.ts +0 -1
  134. package/dist/popover/Popover.d.ts +0 -6
  135. package/dist/popover/index.d.ts +0 -1
  136. package/dist/select/Select.d.ts +0 -8
  137. package/dist/select/index.d.ts +0 -1
  138. package/dist/spinner/Spinner.d.ts +0 -9
  139. package/dist/spinner/index.d.ts +0 -1
  140. package/dist/stock-quantity-status/StockQuantityStatus.d.ts +0 -7
  141. package/dist/stock-quantity-status/index.d.ts +0 -1
  142. package/dist/switch/Switch.d.ts +0 -11
  143. package/dist/switch/index.d.ts +0 -1
  144. package/dist/tab/Tab.d.ts +0 -6
  145. package/dist/tab/index.d.ts +0 -1
  146. package/dist/toast/index.d.ts +0 -1
  147. package/dist/token/index.d.ts +0 -3
  148. package/dist/typography/Typography.d.ts +0 -9
  149. package/dist/typography/index.d.ts +0 -1
@@ -0,0 +1,15 @@
1
+ import * as react from 'react';
2
+ import { ComponentPropsWithoutRef } from 'react';
3
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
4
+
5
+ interface TriggerProps extends ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> {
6
+ chevron?: boolean;
7
+ }
8
+ declare const Accordion: react.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & react.RefAttributes<HTMLDivElement>> & {
9
+ Item: react.ForwardRefExoticComponent<Omit<Omit<AccordionPrimitive.AccordionItemProps & react.RefAttributes<HTMLDivElement>, "ref">, "ref"> & react.RefAttributes<HTMLDivElement>>;
10
+ Header: react.ForwardRefExoticComponent<AccordionPrimitive.AccordionHeaderProps & react.RefAttributes<HTMLHeadingElement>>;
11
+ Trigger: react.ForwardRefExoticComponent<TriggerProps & react.RefAttributes<HTMLButtonElement>>;
12
+ Content: react.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
13
+ };
14
+
15
+ export { Accordion };
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ var reactIcons = require('@cocso-ui/react-icons');
4
+ var AccordionPrimitive = require('@radix-ui/react-accordion');
5
+ var clsx = require('clsx');
6
+ var react = require('react');
7
+ var Accordion_module = require('./Accordion.module.css.js');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+
10
+ function _interopNamespaceDefault(e) {
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(AccordionPrimitive);
28
+
29
+ const AccordionItem = /*#__PURE__*/react.forwardRef(({
30
+ className,
31
+ ...props
32
+ }, ref) => {
33
+ return /*#__PURE__*/jsxRuntime.jsx(AccordionPrimitive__namespace.Item, {
34
+ ref: ref,
35
+ className: clsx.clsx(Accordion_module.item, className),
36
+ ...props
37
+ });
38
+ });
39
+ const AccordionTrigger = /*#__PURE__*/react.forwardRef(({
40
+ className,
41
+ children,
42
+ chevron = true,
43
+ ...props
44
+ }, ref) => {
45
+ return /*#__PURE__*/jsxRuntime.jsxs(AccordionPrimitive__namespace.Trigger, {
46
+ ref: ref,
47
+ className: clsx.clsx(Accordion_module.trigger, className),
48
+ ...props,
49
+ children: [children, chevron && /*#__PURE__*/jsxRuntime.jsx(reactIcons.KeyboardArrowDownIcon, {
50
+ className: Accordion_module.chevron
51
+ })]
52
+ });
53
+ });
54
+ const AccordionContent = /*#__PURE__*/react.forwardRef(({
55
+ className,
56
+ ...props
57
+ }, ref) => {
58
+ return /*#__PURE__*/jsxRuntime.jsx(AccordionPrimitive__namespace.Content, {
59
+ ref: ref,
60
+ className: clsx.clsx(Accordion_module.content, className),
61
+ ...props
62
+ });
63
+ });
64
+ const Accordion = Object.assign(AccordionPrimitive__namespace.Root, {
65
+ Item: AccordionItem,
66
+ Header: AccordionPrimitive__namespace.Header,
67
+ Trigger: AccordionTrigger,
68
+ Content: AccordionContent
69
+ });
70
+
71
+ exports.Accordion = Accordion;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = ".Accordion-module_content__V9Ftc,.Accordion-module_item__iE3dq{overflow:hidden}.Accordion-module_content__V9Ftc[data-state=open]{animation:Accordion-module_slide-down__88c3a .3s cubic-bezier(.87,0,.13,1)}.Accordion-module_content__V9Ftc[data-state=closed]{animation:Accordion-module_slide-up__hbYw7 .3s cubic-bezier(.87,0,.13,1)}.Accordion-module_trigger__6nu7o{cursor:pointer;display:flex;justify-content:space-between;width:100%}.Accordion-module_chevron__oFGVg{display:inline-block;height:var(--number-10);transition:transform .2s ease-in-out;width:var(--number-10)}.Accordion-module_trigger__6nu7o[data-state=closed]>.Accordion-module_chevron__oFGVg{transform:rotate(0deg)}.Accordion-module_trigger__6nu7o[data-state=open]>.Accordion-module_chevron__oFGVg{transform:rotate(180deg)}@keyframes Accordion-module_slide-up__hbYw7{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes Accordion-module_slide-down__88c3a{0%{height:0}to{height:var(--radix-accordion-content-height)}}";
6
+ var styles = {"item":"Accordion-module_item__iE3dq","content":"Accordion-module_content__V9Ftc","trigger":"Accordion-module_trigger__6nu7o","chevron":"Accordion-module_chevron__oFGVg"};
7
+ styleInject_es(css_248z);
8
+
9
+ module.exports = styles;
@@ -0,0 +1,23 @@
1
+ import * as react from 'react';
2
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
3
+ import { FontWeight } from '../token/typography.js';
4
+
5
+ type ButtonSize = 'xl' | 'lg' | 'md' | 'sm' | 'xs';
6
+ type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'success' | 'error' | 'warning' | 'neutral';
7
+ type ButtonShape = 'square' | 'circle' | 'rounded';
8
+ interface ButtonProps extends Omit<ComponentPropsWithoutRef<'button'>, 'prefix'> {
9
+ asChild?: boolean;
10
+ size?: ButtonSize;
11
+ variant?: ButtonVariant;
12
+ weight?: FontWeight;
13
+ shape?: ButtonShape;
14
+ prefix?: ReactNode;
15
+ suffix?: ReactNode;
16
+ svgOnly?: boolean;
17
+ disabled?: boolean;
18
+ loading?: boolean;
19
+ }
20
+ declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
21
+
22
+ export { Button };
23
+ export type { ButtonProps, ButtonShape, ButtonSize, ButtonVariant };
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ var reactPrimitive = require('@radix-ui/react-primitive');
4
+ var clsx = require('clsx');
5
+ var react = require('react');
6
+ var tsPattern = require('ts-pattern');
7
+ var Button_module = require('./Button.module.css.js');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+ var typography = require('../token/typography.js');
10
+ var Spinner = require('../spinner/Spinner.js');
11
+ var color = require('../token/color.js');
12
+
13
+ const Button = /*#__PURE__*/react.forwardRef(({
14
+ asChild,
15
+ className,
16
+ style: _style,
17
+ children,
18
+ size = 'md',
19
+ variant = 'primary',
20
+ weight = 'medium',
21
+ shape = 'square',
22
+ prefix,
23
+ suffix,
24
+ svgOnly = false,
25
+ disabled = false,
26
+ loading = false,
27
+ ...props
28
+ }, ref) => {
29
+ const style = {
30
+ ..._style,
31
+ ...getSizeStyles(size),
32
+ '--cocso-button-font-color': getColor(variant),
33
+ '--cocso-button-font-weight': typography.fontWeight[weight],
34
+ '--cocso-button-border': getBorder(variant),
35
+ '--cocso-button-border-radius': getBorderRadius(shape, size),
36
+ '--cocso-button-bg-color': getBackgroundColor(variant),
37
+ '--cocso-button-bg-color-hover': getBackgroundColorHover(variant),
38
+ '--cocso-button-bg-color-active': getBackgroundColorActive(variant)
39
+ };
40
+ const isDisabled = disabled || loading;
41
+ const cn = clsx.clsx(Button_module.button, isDisabled && Button_module.disabled, svgOnly && Button_module.svgOnly, className);
42
+ const renderButtonContent = ctx => /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
43
+ children: [loading && /*#__PURE__*/jsxRuntime.jsx(Spinner.Spinner, {
44
+ size: "sm",
45
+ color: "white"
46
+ }), prefix && /*#__PURE__*/jsxRuntime.jsx("span", {
47
+ className: Button_module.prefix,
48
+ children: prefix
49
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
50
+ className: Button_module.content,
51
+ children: ctx
52
+ }), suffix && /*#__PURE__*/jsxRuntime.jsx("span", {
53
+ className: Button_module.suffix,
54
+ children: suffix
55
+ })]
56
+ });
57
+ if (asChild) {
58
+ if (! /*#__PURE__*/react.isValidElement(children)) {
59
+ throw new Error('Button: asChild requires a single React element as a child');
60
+ }
61
+ const target = children;
62
+ const ctx = target.props.children;
63
+ return /*#__PURE__*/react.cloneElement(target, {
64
+ ref,
65
+ ...props,
66
+ ...target.props,
67
+ className: clsx.clsx(cn, target.props.className),
68
+ style: {
69
+ ...style,
70
+ ...target.props.style
71
+ },
72
+ children: renderButtonContent(ctx)
73
+ });
74
+ }
75
+ return /*#__PURE__*/jsxRuntime.jsx(reactPrimitive.Primitive.button, {
76
+ ref: ref,
77
+ className: cn,
78
+ disabled: isDisabled,
79
+ style: style,
80
+ ...props,
81
+ children: renderButtonContent(children)
82
+ });
83
+ });
84
+ const getSizeStyles = size => {
85
+ const height = tsPattern.match(size).with('xl', () => 56).with('lg', () => 48).with('md', () => 40).with('sm', () => 32).with('xs', () => 24).exhaustive();
86
+ const inlinePadding = tsPattern.match(size).with('xl', () => 16).with('lg', () => 14).with('md', () => 10).with('sm', () => 6).with('xs', () => 0).exhaustive();
87
+ const fontSize = tsPattern.match(size).with('xl', () => 16).with('lg', () => 16).with('xs', () => 12).otherwise(() => 14);
88
+ return {
89
+ '--cocso-button-height': `${height}px`,
90
+ '--cocso-button-padding-inline': `${inlinePadding}px`,
91
+ '--cocso-button-font-size': `${fontSize}px`
92
+ };
93
+ };
94
+ const getBorderRadius = (shape, size) => {
95
+ return tsPattern.match(shape).with('square', () => {
96
+ return tsPattern.match(size).with('xs', () => '4px').otherwise(() => '6px');
97
+ }).with('circle', () => '100%').with('rounded', () => '100px').exhaustive();
98
+ };
99
+ const getColor = variant => {
100
+ return tsPattern.match(variant).with('primary', 'success', 'error', 'neutral', () => color.colors.white).with('secondary', 'tertiary', 'warning', () => color.colors.neutral950).exhaustive();
101
+ };
102
+ const getBorder = variant => {
103
+ return tsPattern.match(variant).with('tertiary', () => `1px solid ${color.colors.neutral100}`).otherwise(() => 'none');
104
+ };
105
+ const getBackgroundColor = variant => {
106
+ return tsPattern.match(variant).with('primary', () => color.colors.primary500).with('secondary', () => color.colors.white).with('tertiary', () => color.colors.transparent).with('success', () => color.colors.success500).with('error', () => color.colors.danger500).with('warning', () => color.colors.warning300).with('neutral', () => color.colors.neutral950).exhaustive();
107
+ };
108
+ const getBackgroundColorHover = variant => {
109
+ return tsPattern.match(variant).with('primary', () => color.colors.primary600).with('secondary', () => color.colors.neutral50).with('tertiary', () => color.colors.neutral50).with('success', () => color.colors.success600).with('error', () => color.colors.danger600).with('warning', () => color.colors.warning400).with('neutral', () => color.colors.neutral800).exhaustive();
110
+ };
111
+ const getBackgroundColorActive = variant => {
112
+ return tsPattern.match(variant).with('primary', () => color.colors.primary700).with('secondary', () => color.colors.neutral100).with('tertiary', () => color.colors.neutral100).with('success', () => color.colors.success700).with('error', () => color.colors.danger700).with('warning', () => color.colors.warning500).with('neutral', () => color.colors.neutral700).exhaustive();
113
+ };
114
+
115
+ exports.Button = Button;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = ".Button-module_button__eiKKZ{--cocso-button-height:inherit;--cocso-button-padding-inline:inherit;--cocso-button-font-color:inherit;--cocso-button-font-size:inherit;--cocso-button-font-weight:inherit;--cocso-button-border:inherit;--cocso-button-border-radius:inherit;--cocso-button-bg-color:inherit;align-items:center;background-color:var(--cocso-button-bg-color);border:var(--cocso-button-border);border-radius:var(--cocso-button-border-radius);color:var(--cocso-button-font-color);cursor:pointer;display:inline-flex;font-size:var(--cocso-button-font-size);font-weight:var(--cocso-button-font-weight);height:var(--cocso-button-height);justify-content:center;opacity:1;padding-inline:var(--cocso-button-padding-inline);position:relative;transform:translateZ(0);transition:background-color .15s ease-in-out}.Button-module_button__eiKKZ:not(.Button-module_disabled__M6r1w):hover{--cocso-button-bg-color-hover:inherit;background-color:var(--cocso-button-bg-color-hover)}.Button-module_button__eiKKZ:not(.Button-module_disabled__M6r1w):active{--cocso-button-bg-color-active:inherit;background-color:var(--cocso-button-bg-color-active)}.Button-module_content__SVjwi{padding:0 6px}.Button-module_prefix__d7ljt{margin-right:2px}.Button-module_prefix__d7ljt,.Button-module_suffix__9oysT{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center;min-width:20px}.Button-module_suffix__9oysT{margin-left:2px}.Button-module_disabled__M6r1w{cursor:not-allowed;opacity:.4}.Button-module_svgOnly__8RcZ7{aspect-ratio:1/1;padding:0}";
6
+ var styles = {"button":"Button-module_button__eiKKZ","disabled":"Button-module_disabled__M6r1w","content":"Button-module_content__SVjwi","prefix":"Button-module_prefix__d7ljt","suffix":"Button-module_suffix__9oysT","svgOnly":"Button-module_svgOnly__8RcZ7"};
7
+ styleInject_es(css_248z);
8
+
9
+ module.exports = styles;
@@ -0,0 +1,18 @@
1
+ import * as react from 'react';
2
+ import { ComponentPropsWithoutRef } from 'react';
3
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
4
+
5
+ type CheckboxSize = 'lg' | 'md' | 'sm';
6
+ type CheckboxStatus = 'on' | 'off' | 'intermediate';
7
+ interface CheckboxProps extends Omit<ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, 'checked' | 'onCheckedChange' | 'onChange'> {
8
+ id?: string;
9
+ size?: CheckboxSize;
10
+ status: CheckboxStatus;
11
+ onChange: (status: CheckboxStatus) => void;
12
+ label?: string;
13
+ disabled?: boolean;
14
+ }
15
+ declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLButtonElement>>;
16
+
17
+ export { Checkbox };
18
+ export type { CheckboxProps, CheckboxSize, CheckboxStatus };
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ var reactIcons = require('@cocso-ui/react-icons');
4
+ var CheckboxPrimitive = require('@radix-ui/react-checkbox');
5
+ var clsx = require('clsx');
6
+ var react = require('react');
7
+ var tsPattern = require('ts-pattern');
8
+ var Checkbox_module = require('./Checkbox.module.css.js');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+ var Typography = require('../typography/Typography.js');
11
+ var spacing = require('../token/spacing.js');
12
+ var color = require('../token/color.js');
13
+
14
+ function _interopNamespaceDefault(e) {
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n.default = e;
28
+ return Object.freeze(n);
29
+ }
30
+
31
+ var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(CheckboxPrimitive);
32
+
33
+ const Checkbox = /*#__PURE__*/react.forwardRef(({
34
+ id: _id,
35
+ className,
36
+ style: _style,
37
+ size = 'md',
38
+ status,
39
+ onChange,
40
+ label,
41
+ disabled,
42
+ ...props
43
+ }, ref) => {
44
+ const generatedId = react.useId();
45
+ const id = _id ?? generatedId;
46
+ const handleCheckedChange = checked => {
47
+ if (!disabled) {
48
+ const nextStatus = tsPattern.match(checked).with(true, () => 'on').with('indeterminate', () => 'intermediate').with(false, () => 'off').exhaustive();
49
+ onChange(nextStatus);
50
+ }
51
+ };
52
+ const getCheckedState = () => {
53
+ return tsPattern.match(status).with('on', () => true).with('intermediate', () => 'indeterminate').with('off', () => false).exhaustive();
54
+ };
55
+ const style = {
56
+ ..._style,
57
+ '--cocso-checkbox-size': getSize(size),
58
+ '--cocso-checkbox-color': color.colors.white,
59
+ '--cocso-checkbox-border-color': getBorderColor(status),
60
+ '--cocso-checkbox-bg-color': getBackgroundColor(status)
61
+ };
62
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
63
+ className: clsx.clsx(Checkbox_module.wrapper, className),
64
+ style: style,
65
+ children: [/*#__PURE__*/jsxRuntime.jsxs(CheckboxPrimitive__namespace.Root, {
66
+ ref: ref,
67
+ id: id,
68
+ className: Checkbox_module.checkbox,
69
+ checked: getCheckedState(),
70
+ onCheckedChange: handleCheckedChange,
71
+ disabled: disabled,
72
+ ...props,
73
+ children: [/*#__PURE__*/jsxRuntime.jsx(CheckboxPrimitive__namespace.Indicator, {
74
+ className: Checkbox_module.indicator,
75
+ style: {
76
+ opacity: status === 'on' ? 1 : 0
77
+ },
78
+ "aria-hidden": "true",
79
+ children: /*#__PURE__*/jsxRuntime.jsx(reactIcons.CheckIcon, {
80
+ size: 24
81
+ })
82
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
83
+ className: Checkbox_module.indicator,
84
+ style: {
85
+ opacity: status === 'intermediate' ? 1 : 0
86
+ },
87
+ "aria-hidden": "true",
88
+ children: /*#__PURE__*/jsxRuntime.jsx(reactIcons.CheckIcon, {
89
+ size: 24
90
+ })
91
+ })]
92
+ }), label && /*#__PURE__*/jsxRuntime.jsx(Typography.Typography, {
93
+ type: "body",
94
+ className: Checkbox_module.label,
95
+ size: size,
96
+ "aria-disabled": disabled,
97
+ asChild: true,
98
+ children: /*#__PURE__*/jsxRuntime.jsx("label", {
99
+ htmlFor: id,
100
+ children: label
101
+ })
102
+ })]
103
+ });
104
+ });
105
+ const getSize = size => {
106
+ return tsPattern.match(size).with('lg', () => spacing.spacing.s10).with('md', () => spacing.spacing.s9).with('sm', () => spacing.spacing.s8).exhaustive();
107
+ };
108
+ const getBorderColor = status => {
109
+ return tsPattern.match(status).with('on', () => color.colors.primary500).with('intermediate', () => color.colors.primary500).with('off', () => color.colors.neutral100).exhaustive();
110
+ };
111
+ const getBackgroundColor = status => {
112
+ return tsPattern.match(status).with('on', () => color.colors.primary500).with('intermediate', () => color.colors.primary500).with('off', () => color.colors.white).exhaustive();
113
+ };
114
+
115
+ exports.Checkbox = Checkbox;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = ".Checkbox-module_wrapper__5uqJp{align-items:center;display:flex;gap:var(--ds-spacing-5)}.Checkbox-module_checkbox__05Z5t{--cocso-checkbox-size:inherit;--cocso-checkbox-color:inherit;--cocso-checkbox-border-color:inherit;--cocso-checkbox-bg-color:inherit;align-items:center;background-color:var(--cocso-checkbox-bg-color);border:1px solid var(--cocso-checkbox-border-color);border-radius:4px;color:var(--cocso-checkbox-color);cursor:pointer;display:inline-flex;height:var(--cocso-checkbox-size);justify-content:center;opacity:1;position:relative;transition:color .15s ease-in-out,border-color .15s ease-in-out,background-color .15s ease-in-out;width:var(--cocso-checkbox-size)}.Checkbox-module_checkbox__05Z5t>svg{stroke:var(--cocso-checkbox-color);display:block;height:auto;max-width:100%;transition:stroke .15s ease-in-out}.Checkbox-module_checkbox__05Z5t input[type=checkbox]{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.Checkbox-module_indicator__MLpNt{bottom:var(--number-1);left:var(--number-1);position:absolute;right:var(--number-1);top:var(--number-1);transition:opacity .15s ease-in-out}.Checkbox-module_label__ubb5U{cursor:pointer;opacity:1}.Checkbox-module_checkbox__05Z5t[disabled],.Checkbox-module_label__ubb5U[aria-disabled=true]{cursor:not-allowed;opacity:.5}";
6
+ var styles = {"wrapper":"Checkbox-module_wrapper__5uqJp","checkbox":"Checkbox-module_checkbox__05Z5t","indicator":"Checkbox-module_indicator__MLpNt","label":"Checkbox-module_label__ubb5U"};
7
+ styleInject_es(css_248z);
8
+
9
+ module.exports = styles;
@@ -0,0 +1,11 @@
1
+ import * as react from 'react';
2
+ import * as DropdownPrimitive from '@radix-ui/react-dropdown-menu';
3
+
4
+ declare const Dropdown: react.FC<DropdownPrimitive.DropdownMenuProps> & {
5
+ Trigger: react.ForwardRefExoticComponent<DropdownPrimitive.DropdownMenuTriggerProps & react.RefAttributes<HTMLButtonElement>>;
6
+ Portal: react.FC<DropdownPrimitive.DropdownMenuPortalProps>;
7
+ Content: react.ForwardRefExoticComponent<Omit<Omit<DropdownPrimitive.DropdownMenuContentProps & react.RefAttributes<HTMLDivElement>, "ref">, "ref"> & react.RefAttributes<HTMLDivElement>>;
8
+ Item: react.ForwardRefExoticComponent<Omit<DropdownPrimitive.DropdownMenuItemProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
9
+ };
10
+
11
+ export { Dropdown };
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ var DropdownPrimitive = require('@radix-ui/react-dropdown-menu');
4
+ var clsx = require('clsx');
5
+ var react = require('react');
6
+ var Dropdown_module = require('./Dropdown.module.css.js');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ function _interopNamespaceDefault(e) {
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var DropdownPrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(DropdownPrimitive);
27
+
28
+ const DropdownContent = /*#__PURE__*/react.forwardRef(({
29
+ className,
30
+ ...props
31
+ }, ref) => {
32
+ return /*#__PURE__*/jsxRuntime.jsx(DropdownPrimitive__namespace.Content, {
33
+ ref: ref,
34
+ className: clsx.clsx(Dropdown_module.content, className),
35
+ ...props
36
+ });
37
+ });
38
+ const DropdownItem = /*#__PURE__*/react.forwardRef(({
39
+ className,
40
+ ...props
41
+ }, ref) => {
42
+ return /*#__PURE__*/jsxRuntime.jsx(DropdownPrimitive__namespace.Item, {
43
+ ref: ref,
44
+ className: clsx.clsx(Dropdown_module.item, className),
45
+ ...props
46
+ });
47
+ });
48
+ const Dropdown = Object.assign(DropdownPrimitive__namespace.Root, {
49
+ Trigger: DropdownPrimitive__namespace.Trigger,
50
+ Portal: DropdownPrimitive__namespace.Portal,
51
+ Content: DropdownContent,
52
+ Item: DropdownItem
53
+ });
54
+
55
+ exports.Dropdown = Dropdown;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = "@keyframes Dropdown-module_dropdown-slide-up__2uVH3{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes Dropdown-module_dropdown-slide-down__T5LLc{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.Dropdown-module_content__S3TRi{background-color:var(--color-background-white);border-radius:var(--ds-spacing-3);box-shadow:var(--shadow-1);display:flex;flex-direction:column;will-change:transform,opacity;z-index:var(--z-index-overlay)}.Dropdown-module_content__S3TRi[data-side=top]{animation:Dropdown-module_dropdown-slide-up__2uVH3 .4s cubic-bezier(.16,1,.3,1)}.Dropdown-module_content__S3TRi[data-side=bottom]{animation:Dropdown-module_dropdown-slide-down__T5LLc .4s cubic-bezier(.16,1,.3,1)}.Dropdown-module_item__MIltz{display:flex;flex-direction:column}";
6
+ var styles = {"content":"Dropdown-module_content__S3TRi","item":"Dropdown-module_item__MIltz"};
7
+ styleInject_es(css_248z);
8
+
9
+ module.exports = styles;
@@ -0,0 +1,19 @@
1
+ export { Accordion } from './accordion/Accordion.js';
2
+ export { Button, ButtonProps, ButtonShape, ButtonSize, ButtonVariant } from './button/Button.js';
3
+ export { Checkbox, CheckboxProps, CheckboxSize, CheckboxStatus } from './checkbox/Checkbox.js';
4
+ export { Dropdown } from './dropdown/Dropdown.js';
5
+ export { Link, LinkProps, LinkSize } from './link/Link.js';
6
+ export { Modal } from './modal/Modal.js';
7
+ export { OneTimePasswordField } from './one-time-password-field/OneTimePasswordField.js';
8
+ export { Pagination, PaginationProps } from './pagination/Pagination.js';
9
+ export { Popover } from './popover/Popover.js';
10
+ export { Select, SelectProps } from './select/Select.js';
11
+ export { Spinner, SpinnerColor, SpinnerProps, SpinnerSize } from './spinner/Spinner.js';
12
+ export { QuantityStatus, QuantityStatusProps, StockQuantityStatus, getColor } from './stock-quantity-status/StockQuantityStatus.js';
13
+ export { Switch, SwitchProps, SwitchSize } from './switch/Switch.js';
14
+ export { Tab } from './tab/Tab.js';
15
+ export { Toaster, toast } from 'sonner';
16
+ export { colors } from './token/color.js';
17
+ export { spacing } from './token/spacing.js';
18
+ export { FontSize, FontWeight, LineHeight, ResponsiveFontSize, fontSize, fontWeight, lineHeight } from './token/typography.js';
19
+ export { BodySize, DisplaySize, HeadingSize, Typography, TypographyProps } from './typography/Typography.js';
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var Accordion = require('./accordion/Accordion.js');
4
+ var Button = require('./button/Button.js');
5
+ var Checkbox = require('./checkbox/Checkbox.js');
6
+ var Dropdown = require('./dropdown/Dropdown.js');
7
+ var Link = require('./link/Link.js');
8
+ var Modal = require('./modal/Modal.js');
9
+ var OneTimePasswordField = require('./one-time-password-field/OneTimePasswordField.js');
10
+ var Pagination = require('./pagination/Pagination.js');
11
+ var Popover = require('./popover/Popover.js');
12
+ var Select = require('./select/Select.js');
13
+ var Spinner = require('./spinner/Spinner.js');
14
+ var StockQuantityStatus = require('./stock-quantity-status/StockQuantityStatus.js');
15
+ var Switch = require('./switch/Switch.js');
16
+ var Tab = require('./tab/Tab.js');
17
+ var sonner = require('sonner');
18
+ var color = require('./token/color.js');
19
+ var spacing = require('./token/spacing.js');
20
+ var typography = require('./token/typography.js');
21
+ var Typography = require('./typography/Typography.js');
22
+
23
+
24
+
25
+ exports.Accordion = Accordion.Accordion;
26
+ exports.Button = Button.Button;
27
+ exports.Checkbox = Checkbox.Checkbox;
28
+ exports.Dropdown = Dropdown.Dropdown;
29
+ exports.Link = Link.Link;
30
+ exports.Modal = Modal.Modal;
31
+ exports.OneTimePasswordField = OneTimePasswordField.OneTimePasswordField;
32
+ exports.Pagination = Pagination.Pagination;
33
+ exports.Popover = Popover.Popover;
34
+ exports.Select = Select.Select;
35
+ exports.Spinner = Spinner.Spinner;
36
+ exports.StockQuantityStatus = StockQuantityStatus.StockQuantityStatus;
37
+ exports.getColor = StockQuantityStatus.getColor;
38
+ exports.Switch = Switch.Switch;
39
+ exports.Tab = Tab.Tab;
40
+ Object.defineProperty(exports, "Toaster", {
41
+ enumerable: true,
42
+ get: function () { return sonner.Toaster; }
43
+ });
44
+ Object.defineProperty(exports, "toast", {
45
+ enumerable: true,
46
+ get: function () { return sonner.toast; }
47
+ });
48
+ exports.colors = color.colors;
49
+ exports.spacing = spacing.spacing;
50
+ exports.fontSize = typography.fontSize;
51
+ exports.fontWeight = typography.fontWeight;
52
+ exports.lineHeight = typography.lineHeight;
53
+ exports.Typography = Typography.Typography;
@@ -0,0 +1,16 @@
1
+ import * as react from 'react';
2
+ import { ComponentPropsWithoutRef } from 'react';
3
+ import { FontWeight, LineHeight } from '../token/typography.js';
4
+
5
+ type LinkSize = 'lg' | 'md' | 'sm' | 'xs';
6
+ interface LinkProps extends ComponentPropsWithoutRef<'a'> {
7
+ asChild?: boolean;
8
+ size?: LinkSize;
9
+ weight?: FontWeight;
10
+ lineHeight?: LineHeight;
11
+ indicator?: boolean;
12
+ }
13
+ declare const Link: react.ForwardRefExoticComponent<LinkProps & react.RefAttributes<HTMLAnchorElement>>;
14
+
15
+ export { Link };
16
+ export type { LinkProps, LinkSize };
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var reactPrimitive = require('@radix-ui/react-primitive');
4
+ var reactSlot = require('@radix-ui/react-slot');
5
+ var clsx = require('clsx');
6
+ var react = require('react');
7
+ var Link_module = require('./Link.module.css.js');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+ var Typography = require('../typography/Typography.js');
10
+
11
+ const Link = /*#__PURE__*/react.forwardRef(({
12
+ asChild,
13
+ className,
14
+ size,
15
+ weight,
16
+ lineHeight,
17
+ indicator = true,
18
+ ...props
19
+ }, ref) => {
20
+ const Comp = asChild ? reactSlot.Slot : reactPrimitive.Primitive.a;
21
+ return /*#__PURE__*/jsxRuntime.jsx(Typography.Typography, {
22
+ type: "body",
23
+ size: size,
24
+ weight: weight,
25
+ lineHeight: lineHeight,
26
+ asChild: true,
27
+ children: /*#__PURE__*/jsxRuntime.jsx(Comp, {
28
+ ref: ref,
29
+ className: clsx.clsx(Link_module.link, indicator && Link_module.indicator, className),
30
+ ...props
31
+ })
32
+ });
33
+ });
34
+
35
+ exports.Link = Link;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var styleInject_es = require('../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js');
4
+
5
+ var css_248z = ".Link-module_link__J9CFb{align-items:center;cursor:pointer;display:inline-flex;gap:var(--ds-spacing-2);justify-content:center;text-decoration:none;transition:color .15s ease-in-out;width:fit-content}.Link-module_link__J9CFb>svg{flex-shrink:0;height:var(--ds-spacing-8);width:var(--ds-spacing-8)}.Link-module_indicator__DIUaW{text-decoration:underline}";
6
+ var styles = {"link":"Link-module_link__J9CFb","indicator":"Link-module_indicator__DIUaW"};
7
+ styleInject_es(css_248z);
8
+
9
+ module.exports = styles;
@@ -0,0 +1,12 @@
1
+ import * as react from 'react';
2
+ import * as ModalPrimitive from '@radix-ui/react-dialog';
3
+
4
+ declare const Modal: react.FC<ModalPrimitive.DialogProps> & {
5
+ Trigger: react.ForwardRefExoticComponent<ModalPrimitive.DialogTriggerProps & react.RefAttributes<HTMLButtonElement>>;
6
+ Content: react.ForwardRefExoticComponent<Omit<Omit<ModalPrimitive.DialogContentProps & react.RefAttributes<HTMLDivElement>, "ref">, "ref"> & react.RefAttributes<HTMLDivElement>>;
7
+ Close: react.ForwardRefExoticComponent<Omit<ModalPrimitive.DialogCloseProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
8
+ Title: react.ForwardRefExoticComponent<Omit<ModalPrimitive.DialogTitleProps & react.RefAttributes<HTMLHeadingElement>, "ref"> & react.RefAttributes<HTMLHeadingElement>>;
9
+ Description: react.ForwardRefExoticComponent<Omit<ModalPrimitive.DialogDescriptionProps & react.RefAttributes<HTMLParagraphElement>, "ref"> & react.RefAttributes<HTMLParagraphElement>>;
10
+ };
11
+
12
+ export { Modal };