@companix/uikit 0.0.3 → 0.0.5

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 (165) hide show
  1. package/dist/Button/Button.scss +128 -0
  2. package/dist/ButtonGroup/ButtonGroup.scss +18 -0
  3. package/dist/Checkbox/Checkbox.scss +115 -0
  4. package/dist/DateInput/DateInput.scss +11 -0
  5. package/dist/DatePicker/Calendar.scss +125 -0
  6. package/dist/DatePicker/DatePicker.scss +0 -0
  7. package/dist/Dialog/Dialog.scss +25 -0
  8. package/dist/Dialog/Popup.scss +55 -0
  9. package/dist/DialogAlert/Alert.scss +52 -0
  10. package/dist/Drawer/Drawer.scss +112 -0
  11. package/dist/Form/Form.scss +70 -0
  12. package/dist/Form/Input.scss +24 -0
  13. package/dist/Icon/icon.scss +18 -0
  14. package/dist/OptionItem/Option.scss +89 -0
  15. package/dist/Popover/Popover.scss +80 -0
  16. package/dist/Radio/Radio.scss +148 -0
  17. package/dist/Scrollable/Scrollable.scss +50 -0
  18. package/dist/Select/Select.scss +80 -0
  19. package/dist/SelectTags/SelectTags.scss +66 -0
  20. package/dist/Spinner/Spinner.scss +14 -0
  21. package/dist/Stepper/StepperInput.scss +35 -0
  22. package/dist/Switch/Switch.scss +102 -0
  23. package/dist/Tabs/Tabs.scss +58 -0
  24. package/dist/TextArea/TextArea.scss +34 -0
  25. package/dist/Toaster/Toaster.scss +151 -0
  26. package/dist/Tooltip/Tooltip.scss +28 -0
  27. package/dist/bundle.es.js +56 -59
  28. package/dist/bundle.es10.js +35 -84
  29. package/dist/bundle.es11.js +30 -72
  30. package/dist/bundle.es12.js +14 -34
  31. package/dist/bundle.es13.js +7 -30
  32. package/dist/bundle.es14.js +33 -16
  33. package/dist/bundle.es15.js +24 -8
  34. package/dist/bundle.es16.js +15 -27
  35. package/dist/bundle.es17.js +22 -25
  36. package/dist/bundle.es18.js +13 -21
  37. package/dist/bundle.es19.js +38 -22
  38. package/dist/bundle.es2.js +45 -0
  39. package/dist/bundle.es20.js +16 -13
  40. package/dist/bundle.es21.js +34 -39
  41. package/dist/bundle.es22.js +20 -15
  42. package/dist/bundle.es23.js +38 -32
  43. package/dist/bundle.es24.js +110 -20
  44. package/dist/bundle.es25.js +106 -34
  45. package/dist/bundle.es26.js +34 -110
  46. package/dist/bundle.es27.js +11 -113
  47. package/dist/bundle.es28.js +23 -34
  48. package/dist/bundle.es29.js +35 -10
  49. package/dist/bundle.es3.js +10 -42
  50. package/dist/bundle.es30.js +20 -21
  51. package/dist/bundle.es31.js +81 -36
  52. package/dist/bundle.es32.js +20 -0
  53. package/dist/bundle.es33.js +16 -0
  54. package/dist/bundle.es34.js +24 -0
  55. package/dist/bundle.es35.js +5 -41
  56. package/dist/bundle.es36.js +18 -437
  57. package/dist/bundle.es37.js +14 -22
  58. package/dist/bundle.es38.js +68 -22
  59. package/dist/bundle.es39.js +68 -81
  60. package/dist/bundle.es4.js +85 -12
  61. package/dist/bundle.es40.js +31 -17
  62. package/dist/bundle.es41.js +67 -13
  63. package/dist/{bundle.es53.js → bundle.es42.js} +1 -1
  64. package/dist/bundle.es43.js +31 -5
  65. package/dist/bundle.es44.js +74 -20
  66. package/dist/bundle.es45.js +47 -12
  67. package/dist/bundle.es5.js +82 -83
  68. package/dist/bundle.es6.js +74 -81
  69. package/dist/bundle.es7.js +26 -78
  70. package/dist/bundle.es8.js +80 -22
  71. package/dist/bundle.es9.js +71 -43
  72. package/dist/css-properties.scss +120 -0
  73. package/dist/{types/index.d.ts → index.d.ts} +0 -1
  74. package/dist/index.scss +25 -0
  75. package/dist/mixins.scss +100 -0
  76. package/dist/theme.scss +101 -0
  77. package/package.json +3 -3
  78. package/dist/bundle.es46.js +0 -72
  79. package/dist/bundle.es47.js +0 -70
  80. package/dist/bundle.es48.js +0 -34
  81. package/dist/bundle.es49.js +0 -70
  82. package/dist/bundle.es50.js +0 -33
  83. package/dist/bundle.es51.js +0 -78
  84. package/dist/bundle.es52.js +0 -51
  85. package/dist/bundle.es54.js +0 -40
  86. package/dist/bundle.es55.js +0 -36
  87. package/dist/bundle.es56.js +0 -9
  88. package/dist/bundle.es57.js +0 -9
  89. package/dist/bundle.es58.js +0 -7
  90. package/dist/bundle.es59.js +0 -9
  91. package/dist/bundle.es60.js +0 -8
  92. package/dist/bundle.es61.js +0 -19
  93. package/dist/bundle.es62.js +0 -15
  94. package/dist/bundle.es63.js +0 -22
  95. package/dist/bundle.es64.js +0 -45
  96. package/dist/bundle.es65.js +0 -28
  97. package/dist/bundle.es66.js +0 -34
  98. package/dist/bundle.es67.js +0 -6
  99. package/dist/bundle.es68.js +0 -12
  100. package/dist/bundle.es69.js +0 -47
  101. package/dist/bundle.es70.js +0 -11
  102. package/dist/bundle.es71.js +0 -18
  103. package/dist/bundle.es72.js +0 -32
  104. package/dist/bundle.es73.js +0 -35
  105. package/dist/bundle.es74.js +0 -6
  106. package/dist/bundle.es75.js +0 -7
  107. package/dist/bundle.es76.js +0 -7
  108. package/dist/bundle.es77.js +0 -11
  109. package/dist/bundle.es78.js +0 -17
  110. package/dist/bundle.es79.js +0 -7
  111. package/dist/bundle.es80.js +0 -17
  112. package/dist/bundle.es81.js +0 -25
  113. package/dist/uikit.css +0 -1
  114. /package/dist/{types/Button → Button}/index.d.ts +0 -0
  115. /package/dist/{types/ButtonGroup → ButtonGroup}/index.d.ts +0 -0
  116. /package/dist/{types/Checkbox → Checkbox}/index.d.ts +0 -0
  117. /package/dist/{types/Countdown → Countdown}/index.d.ts +0 -0
  118. /package/dist/{types/DateInput → DateInput}/index.d.ts +0 -0
  119. /package/dist/{types/DatePicker → DatePicker}/Calendar.d.ts +0 -0
  120. /package/dist/{types/DatePicker → DatePicker}/CalendarHeader.d.ts +0 -0
  121. /package/dist/{types/DatePicker → DatePicker}/index.d.ts +0 -0
  122. /package/dist/{types/Dialog → Dialog}/index.d.ts +0 -0
  123. /package/dist/{types/DialogAlert → DialogAlert}/Alert.d.ts +0 -0
  124. /package/dist/{types/DialogAlert → DialogAlert}/Viewport.d.ts +0 -0
  125. /package/dist/{types/DialogAlert → DialogAlert}/index.d.ts +0 -0
  126. /package/dist/{types/Drawer → Drawer}/index.d.ts +0 -0
  127. /package/dist/{types/File → File}/index.d.ts +0 -0
  128. /package/dist/{types/Form → Form}/index.d.ts +0 -0
  129. /package/dist/{types/Icon → Icon}/index.d.ts +0 -0
  130. /package/dist/{types/LoadButton → LoadButton}/index.d.ts +0 -0
  131. /package/dist/{types/NumberInput → NumberInput}/index.d.ts +0 -0
  132. /package/dist/{types/OptionItem → OptionItem}/OptionItem.d.ts +0 -0
  133. /package/dist/{types/OptionItem → OptionItem}/OptionsList.d.ts +0 -0
  134. /package/dist/{types/Popover → Popover}/index.d.ts +0 -0
  135. /package/dist/{types/Radio → Radio}/index.d.ts +0 -0
  136. /package/dist/{types/Scrollable → Scrollable}/ImitateScroll.d.ts +0 -0
  137. /package/dist/{types/Scrollable → Scrollable}/index.d.ts +0 -0
  138. /package/dist/{types/Select → Select}/SelectInput.d.ts +0 -0
  139. /package/dist/{types/Select → Select}/index.d.ts +0 -0
  140. /package/dist/{types/SelectTags → SelectTags}/index.d.ts +0 -0
  141. /package/dist/{types/Spinner → Spinner}/index.d.ts +0 -0
  142. /package/dist/{types/Stepper → Stepper}/index.d.ts +0 -0
  143. /package/dist/{types/Switch → Switch}/index.d.ts +0 -0
  144. /package/dist/{types/Tabs → Tabs}/index.d.ts +0 -0
  145. /package/dist/{types/TextArea → TextArea}/index.d.ts +0 -0
  146. /package/dist/{types/Toaster → Toaster}/RemoveListener.d.ts +0 -0
  147. /package/dist/{types/Toaster → Toaster}/Toast.d.ts +0 -0
  148. /package/dist/{types/Toaster → Toaster}/Viewport.d.ts +0 -0
  149. /package/dist/{types/Toaster → Toaster}/index.d.ts +0 -0
  150. /package/dist/{types/Tooltip → Tooltip}/index.d.ts +0 -0
  151. /package/dist/{types/__hooks → __hooks}/use-frooze-closing.d.ts +0 -0
  152. /package/dist/{types/__hooks → __hooks}/use-loading.d.ts +0 -0
  153. /package/dist/{types/__hooks → __hooks}/use-local-storage.d.ts +0 -0
  154. /package/dist/{types/__hooks → __hooks}/use-popover-position.d.ts +0 -0
  155. /package/dist/{types/__hooks → __hooks}/use-previos.d.ts +0 -0
  156. /package/dist/{types/__hooks → __hooks}/use-resize.d.ts +0 -0
  157. /package/dist/{types/__hooks → __hooks}/use-scrollbox.d.ts +0 -0
  158. /package/dist/{types/__hooks → __hooks}/use-stepper-input.d.ts +0 -0
  159. /package/dist/{types/__hooks → __hooks}/use-update.d.ts +0 -0
  160. /package/dist/{types/__hooks → __hooks}/useCalendar.d.ts +0 -0
  161. /package/dist/{types/__hooks → __hooks}/useCalendarOptions-copy.d.ts +0 -0
  162. /package/dist/{types/__hooks → __hooks}/useCalendarOptions.d.ts +0 -0
  163. /package/dist/{types/__libs → __libs}/calendar.d.ts +0 -0
  164. /package/dist/{types/__utils → __utils}/utils.d.ts +0 -0
  165. /package/dist/{types/types.d.ts → types.d.ts} +0 -0
@@ -1,47 +1,75 @@
1
- import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
- /* empty css */
3
- import { Form as u } from "./bundle.es11.js";
4
- import { useStepperInput as f } from "./bundle.es35.js";
5
- import { usePress as h } from "./bundle.es36.js";
6
- import { Button as v } from "./bundle.es3.js";
7
- import { attr as x } from "@companix/utils-browser";
8
- import { Icon as m } from "./bundle.es37.js";
9
- import { faChevronUp as C, faChevronDown as b } from "@fortawesome/free-solid-svg-icons";
10
- const y = ({ inputStyle: r, placeholder: t, buttons: n, ...o }) => {
11
- const { inputRef: s, increment: p, decrement: i, handleChange: d, value: l } = f(o);
12
- return /* @__PURE__ */ a("div", { className: "number-input-container", children: [
13
- /* @__PURE__ */ e(
14
- u,
1
+ import { jsxs as z, jsx as r } from "react/jsx-runtime";
2
+ import A from "classnames";
3
+ import F from "react-input-mask";
4
+ import { useLayoutAndUpdate as M } from "./bundle.es33.js";
5
+ import { attr as c } from "@companix/utils-browser";
6
+ import { forwardRef as R, useRef as m, useCallback as g } from "react";
7
+ import { mergeRefs as U } from "react-merge-refs";
8
+ const Q = R(
9
+ ({
10
+ required: n,
11
+ size: f,
12
+ fill: a,
13
+ leftElement: e,
14
+ rightElement: u,
15
+ onChange: x,
16
+ onValueChange: $,
17
+ readOnly: b,
18
+ className: I,
19
+ value: N,
20
+ placeholder: W,
21
+ disabled: p,
22
+ mask: y,
23
+ maskChar: C,
24
+ inputRef: L,
25
+ ...j
26
+ }, k) => {
27
+ const s = m(null), l = m(null), d = m(null), q = { Right: l, Left: d }, h = g((t) => {
28
+ if (s.current) {
29
+ const i = s.current.style, o = q[t];
30
+ o.current && o.current.clientWidth ? i[`padding${t}`] !== `${o.current.clientWidth}px` && (i[`padding${t}`] = `${o.current.clientWidth}px`) : i[`padding${t}`] && (i[`padding${t}`] = "");
31
+ }
32
+ }, []);
33
+ M(() => {
34
+ h("Left"), h("Right");
35
+ }, [u, e]);
36
+ const w = g((t) => {
37
+ x?.(t), $?.(t.target.value, t.target);
38
+ }, []);
39
+ return /* @__PURE__ */ z(
40
+ "div",
15
41
  {
16
- ref: s,
17
- placeholder: t,
18
- style: r,
19
- value: l,
20
- onChange: d
42
+ ref: k,
43
+ className: A("form", I),
44
+ "data-size": f ?? "md",
45
+ "data-fill": c(a),
46
+ "data-required": c(n),
47
+ "data-disabled": c(p),
48
+ ...j,
49
+ children: [
50
+ e && /* @__PURE__ */ r("span", { ref: d, className: "form-input-base-left-element", children: e }),
51
+ /* @__PURE__ */ r(
52
+ v,
53
+ {
54
+ type: "text",
55
+ ref: U([s, L]),
56
+ className: "form-input form-input-base",
57
+ "aria-disabled": p,
58
+ onChange: w,
59
+ value: N,
60
+ placeholder: W,
61
+ disabled: p,
62
+ readOnly: b,
63
+ maskChar: C,
64
+ mask: y
65
+ }
66
+ ),
67
+ u && /* @__PURE__ */ r("span", { ref: l, className: "form-input-base-right-element", children: u })
68
+ ]
21
69
  }
22
- ),
23
- n && /* @__PURE__ */ e(I, { increment: p, decrement: i })
24
- ] });
25
- }, I = ({ increment: r, decrement: t }) => /* @__PURE__ */ a("div", { className: "number-stepper", children: [
26
- /* @__PURE__ */ e(c, { slot: "increment", onClick: r, children: /* @__PURE__ */ e(m, { size: "xxs", icon: C }) }),
27
- /* @__PURE__ */ e("div", { className: "number-stepper-splitter" }),
28
- /* @__PURE__ */ e(c, { slot: "decrement", onClick: t, children: /* @__PURE__ */ e(m, { size: "xxs", icon: b }) })
29
- ] }), c = ({ children: r, slot: t, onClick: n }) => {
30
- const { pressProps: o, isPressed: s } = h({ onClick: n, preventFocusOnPress: !0 }), { onBeforeInput: p, ...i } = o;
31
- return /* @__PURE__ */ e(
32
- v,
33
- {
34
- ...i,
35
- onBeforeInput: p,
36
- "data-slot": t,
37
- "data-size": void 0,
38
- "data-pressed": x(s),
39
- style: { border: "none" },
40
- className: "number-stepper-slot",
41
- children: r
42
- }
43
- );
44
- };
70
+ );
71
+ }
72
+ ), v = R(({ mask: n, maskChar: f, ...a }, e) => n ? /* @__PURE__ */ r(F, { inputRef: e, mask: n, maskChar: f, ...a }) : /* @__PURE__ */ r("input", { ref: e, ...a }));
45
73
  export {
46
- y as StepperInput
74
+ Q as Form
47
75
  };
@@ -0,0 +1,120 @@
1
+ $properties: (
2
+ // Layout
3
+ display,
4
+ position,
5
+ top,
6
+ right,
7
+ bottom,
8
+ left,
9
+ z-index,
10
+ float,
11
+ clear,
12
+ overflow,
13
+ overflow-x,
14
+ overflow-y,
15
+ visibility,
16
+ // Box model
17
+ box-sizing,
18
+ width,
19
+ min-width,
20
+ max-width,
21
+ height,
22
+ min-height,
23
+ max-height,
24
+ margin,
25
+ margin-top,
26
+ margin-right,
27
+ margin-bottom,
28
+ margin-left,
29
+ padding,
30
+ padding-top,
31
+ padding-right,
32
+ padding-bottom,
33
+ padding-left,
34
+ // Flexbox
35
+ flex,
36
+ flex-direction,
37
+ flex-wrap,
38
+ flex-grow,
39
+ flex-shrink,
40
+ flex-basis,
41
+ justify-content,
42
+ align-items,
43
+ align-content,
44
+ align-self,
45
+ gap,
46
+ row-gap,
47
+ column-gap,
48
+ // Grid
49
+ grid,
50
+ grid-template-columns,
51
+ grid-template-rows,
52
+ grid-template-areas,
53
+ grid-column,
54
+ grid-row,
55
+ grid-area,
56
+ // Typography
57
+ color,
58
+ font,
59
+ font-family,
60
+ font-size,
61
+ font-weight,
62
+ font-style,
63
+ font-stretch,
64
+ line-height,
65
+ letter-spacing,
66
+ text-align,
67
+ text-decoration,
68
+ text-transform,
69
+ text-overflow,
70
+ white-space,
71
+ word-break,
72
+ word-wrap,
73
+ // Background
74
+ background,
75
+ background-color,
76
+ background-image,
77
+ background-repeat,
78
+ background-position,
79
+ background-size,
80
+ // Border
81
+ border,
82
+ border-width,
83
+ border-style,
84
+ border-color,
85
+ border-radius,
86
+ border-top,
87
+ border-right,
88
+ border-bottom,
89
+ border-left,
90
+ // Effects
91
+ box-shadow,
92
+ opacity,
93
+ filter,
94
+ // Transform & animation
95
+ transform,
96
+ transform-origin,
97
+ transition,
98
+ transition-property,
99
+ transition-duration,
100
+ transition-timing-function,
101
+ transition-delay,
102
+ animation,
103
+ animation-name,
104
+ animation-duration,
105
+ animation-timing-function,
106
+ animation-delay,
107
+ animation-iteration-count,
108
+ animation-direction,
109
+ animation-fill-mode,
110
+ // Interaction
111
+ cursor,
112
+ pointer-events,
113
+ user-select,
114
+ // Misc
115
+ outline,
116
+ outline-offset,
117
+ resize,
118
+ object-fit,
119
+ object-position
120
+ );
@@ -4,7 +4,6 @@ export { Scrollable } from './Scrollable';
4
4
  export { ImitateScroll } from './Scrollable/ImitateScroll';
5
5
  export { Popover } from './Popover';
6
6
  export { Tooltip } from './Tooltip';
7
- export { StepperInput } from './Stepper';
8
7
  export { Select } from './Select';
9
8
  export { Form } from './Form';
10
9
  export { OptionItem } from './OptionItem/OptionItem';
@@ -0,0 +1,25 @@
1
+ @use './Button/Button.scss';
2
+ @use './Icon/icon.scss';
3
+ @use './Popover/Popover.scss';
4
+ @use './Tooltip/Tooltip.scss';
5
+ @use './Checkbox/Checkbox.scss';
6
+ @use './Radio/Radio.scss';
7
+ @use './Tabs/Tabs.scss';
8
+ @use './Toaster/Toaster.scss';
9
+ @use './Dialog/Popup.scss';
10
+ @use './Dialog/Dialog.scss';
11
+ @use './DialogAlert/Alert.scss';
12
+ @use './Drawer/Drawer.scss';
13
+ @use './Form/Form.scss';
14
+ @use './Select/Select.scss';
15
+ @use './TextArea/TextArea.scss';
16
+ @use './SelectTags/SelectTags.scss';
17
+ @use './OptionItem/Option.scss';
18
+ @use './DateInput/DateInput.scss';
19
+ @use './DatePicker/DatePicker.scss';
20
+ @use './DatePicker/Calendar.scss';
21
+ @use './Form/Input.scss';
22
+ @use './Switch/Switch.scss';
23
+ @use './Spinner/Spinner.scss';
24
+ @use './ButtonGroup/ButtonGroup.scss';
25
+ @use './Scrollable/Scrollable.scss';
@@ -0,0 +1,100 @@
1
+ @use './theme.scss';
2
+ @use './css-properties.scss';
3
+
4
+ @use 'sass:map';
5
+ @use 'sass:list';
6
+ @use 'sass:meta';
7
+
8
+ @mixin height($size) {
9
+ height: $size;
10
+ min-height: $size;
11
+ max-height: $size;
12
+ }
13
+
14
+ @mixin box($size) {
15
+ height: $size;
16
+ width: $size;
17
+ min-width: $size;
18
+ }
19
+
20
+ @mixin items-spacing($spacing) {
21
+ & > * {
22
+ margin-right: $spacing;
23
+ }
24
+
25
+ & > :last-child {
26
+ margin-right: 0;
27
+ }
28
+ }
29
+
30
+ @mixin truncate-text() {
31
+ overflow: hidden;
32
+ text-overflow: ellipsis;
33
+ white-space: nowrap;
34
+ }
35
+
36
+ @function get-value($map, $keys...) {
37
+ $current: $map;
38
+
39
+ @each $key in $keys {
40
+ @if meta.type-of($current) != 'map' {
41
+ @return null;
42
+ }
43
+
44
+ $current: map.get($current, $key);
45
+
46
+ @if $current == null {
47
+ @return null;
48
+ }
49
+ }
50
+
51
+ @return $current;
52
+ }
53
+
54
+ @mixin set-style($property, $source, $keys...) {
55
+ $path: list.append($keys, $property);
56
+ $var-name: get-value($source, $path...);
57
+
58
+ @if $var-name != null {
59
+ @if meta.type-of($var-name) != 'map' {
60
+ #{$property}: $var-name;
61
+ }
62
+ }
63
+ }
64
+
65
+ @mixin use-styles($component, $keys...) {
66
+ $source: map.get(theme.$tokens, $component);
67
+
68
+ @each $property, $v in css-properties.$properties {
69
+ @include set-style($property, $source, $keys...);
70
+ }
71
+ }
72
+
73
+ @mixin use-styles-debug($component, $keys...) {
74
+ $source: map.get(theme.$tokens, $component);
75
+
76
+ @debug $source;
77
+
78
+ @each $property, $v in css-properties.$properties {
79
+ @include set-style($property, $source, $keys...);
80
+ }
81
+ }
82
+
83
+ @function get-var-name($component, $keys...) {
84
+ $source: map.get(theme.$tokens, $component);
85
+ $var-name: get-value($source, $keys...);
86
+
87
+ @return $var-name;
88
+ }
89
+
90
+ @mixin use-size($component, $keys...) {
91
+ $name: get-var-name($component, $keys...);
92
+
93
+ @if $name != null {
94
+ @if meta.type-of($name) != 'map' {
95
+ width: $name;
96
+ min-width: $name;
97
+ height: $name;
98
+ }
99
+ }
100
+ }
@@ -0,0 +1,101 @@
1
+ @use 'sass:map';
2
+ @use 'sass:string';
3
+ @use 'sass:list';
4
+
5
+ $button-appearances: ();
6
+ $tokens: ();
7
+
8
+ @function str-split($string, $delimiter) {
9
+ $result: ();
10
+ $buffer: '';
11
+
12
+ @for $i from 1 through string.length($string) {
13
+ $char: string.slice($string, $i, $i);
14
+
15
+ @if ($char == $delimiter) {
16
+ $result: list.append($result, $buffer);
17
+ $buffer: '';
18
+ } @else {
19
+ $buffer: $buffer + $char;
20
+ }
21
+ }
22
+
23
+ $result: list.append($result, $buffer);
24
+
25
+ @return $result;
26
+ }
27
+
28
+ @function list-slice($list, $start, $end: list.length($list)) {
29
+ $new: ();
30
+
31
+ @for $i from $start through $end {
32
+ $new: list.append($new, list.nth($list, $i));
33
+ }
34
+
35
+ @return $new;
36
+ }
37
+
38
+ /// Добавляет значение в многоуровневую карту
39
+ @function map-deep-set($map, $keys, $value) {
40
+ $current: $map;
41
+ $key: list.nth($keys, 1);
42
+
43
+ @if list.length($keys) == 1 {
44
+ @return map.merge(
45
+ $current,
46
+ (
47
+ $key: $value
48
+ )
49
+ );
50
+ }
51
+
52
+ $nested: map.get($current, $key);
53
+
54
+ @if $nested == null {
55
+ $nested: ();
56
+ }
57
+
58
+ $nested: map-deep-set($nested, list-slice($keys, 2), $value);
59
+
60
+ @return map.merge(
61
+ $current,
62
+ (
63
+ $key: $nested
64
+ )
65
+ );
66
+ }
67
+
68
+ @mixin use-button-properties($vars) {
69
+ @each $full-name, $v in $vars {
70
+ // Разбиваем путь: primary-default-enabled-background → ('primary', 'default', 'enabled', 'background')
71
+ $parts: str-split($full-name, '_');
72
+ // Создаём CSS переменную:
73
+ $css-var: string.unquote('var(--btn_#{$full-name})');
74
+ // Глубоко добавляем значение в структуру
75
+ $button-appearances: map-deep-set($button-appearances, $parts, $css-var) !global;
76
+ }
77
+ }
78
+
79
+ @mixin use-tokens($components) {
80
+ @each $component-name, $v in $components {
81
+ $component-vars: map.get($components, $component-name);
82
+
83
+ @each $path, $v in $component-vars {
84
+ $name: #{$component-name}_#{$path};
85
+ // Разбиваем путь: primary_default_enabled_background → ('primary', 'default', 'enabled', 'background')
86
+ $keys: str-split($name, '_');
87
+ // Создаём CSS переменную:
88
+ $css-var: string.unquote('var(--#{$name})');
89
+ // Глубоко добавляем значение в структуру
90
+ $tokens: map-deep-set($tokens, $keys, $css-var) !global;
91
+ // set scss var
92
+ --#{$name}: #{map.get($component-vars, $path)};
93
+ }
94
+ }
95
+ }
96
+
97
+ @mixin use-css-vars($prefix, $map) {
98
+ @each $name, $value in $map {
99
+ --#{$prefix}_#{$name}: #{$value};
100
+ }
101
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@companix/uikit",
3
- "version": "0.0.03",
3
+ "version": "0.0.05",
4
4
  "module": "./dist/bundle.es.js",
5
5
  "types": "./dist/types/index.d.ts",
6
6
  "type": "module",
@@ -22,8 +22,8 @@
22
22
  "react-dom": "^18.3.1"
23
23
  },
24
24
  "dependencies": {
25
- "@companix/utils-browser": "file:../utils-browser",
26
- "@companix/utils-js": "file:../utils-js",
25
+ "@companix/utils-browser": "*",
26
+ "@companix/utils-js": "*",
27
27
  "@fortawesome/free-solid-svg-icons": "^7.1.0",
28
28
  "@fortawesome/react-fontawesome": "^3.1.1",
29
29
  "@radix-ui/react-alert-dialog": "^1.1.15",
@@ -1,72 +0,0 @@
1
- import { jsxs as D, jsx as t } from "react/jsx-runtime";
2
- import { dateToFormat as $, weeks as g, createVoids as p, getDayIndex as b, getFirstDay as u, getMonthMaxDay as k } from "./bundle.es50.js";
3
- import { CalendarHeader as F } from "./bundle.es51.js";
4
- import { useCalendar as j } from "./bundle.es52.js";
5
- import { attr as m } from "@companix/utils-browser";
6
- import { isSameDate as f } from "./bundle.es47.js";
7
- import { useLayoutEffect as I } from "react";
8
- const T = ({ disablePickers: c, value: e, onChange: i, ...l }) => {
9
- const {
10
- viewDate: n,
11
- setViewDate: r,
12
- setNextMonth: N,
13
- setPrevMonth: x,
14
- isMonthDisabled: M,
15
- isYearDisabled: v,
16
- isDayDisabled: w
17
- } = j(l);
18
- I(() => {
19
- e && r(e);
20
- }, [e]);
21
- const o = $(n), h = n.getMonth(), y = n.getFullYear(), C = /* @__PURE__ */ new Date();
22
- return /* @__PURE__ */ D("div", { className: "calendar", children: [
23
- /* @__PURE__ */ t(
24
- F,
25
- {
26
- viewDate: n,
27
- onChange: r,
28
- onNextMonth: N,
29
- onPrevMonth: x,
30
- disablePickers: c,
31
- isMonthDisabled: M,
32
- isYearDisabled: v
33
- }
34
- ),
35
- /* @__PURE__ */ t("div", { className: "calendar-names", children: g.map((d, a) => /* @__PURE__ */ t("div", { className: "calendar-name", children: d }, `week-name-${a}`)) }),
36
- /* @__PURE__ */ D("div", { className: "calendar-days", children: [
37
- p(b(u(o.month, o.year))).map((d, a) => /* @__PURE__ */ t("div", { className: "calendar-day", "data-void": !0 }, `void-${d}-${a}`)),
38
- p(k(o.month, o.year)).map((d, a) => {
39
- const s = new Date(y, h, a + 1);
40
- return /* @__PURE__ */ t(
41
- P,
42
- {
43
- day: a + 1,
44
- disabled: w(s),
45
- selected: !!(e && f(e, s)),
46
- today: f(s, C),
47
- onSelect: () => i?.(s)
48
- },
49
- `date-${d}-${y}-${h}-${a}`
50
- );
51
- })
52
- ] })
53
- ] });
54
- }, P = ({ day: c, disabled: e, selected: i, today: l, onSelect: n }) => {
55
- const r = () => {
56
- e || n?.();
57
- };
58
- return /* @__PURE__ */ t(
59
- "div",
60
- {
61
- className: "calendar-day",
62
- "data-disabled": m(e),
63
- "data-selected": m(i),
64
- "data-today": m(l),
65
- onClick: r,
66
- children: /* @__PURE__ */ t("span", { className: "calendar-day-number", children: c })
67
- }
68
- );
69
- };
70
- export {
71
- T as Calendar
72
- };
@@ -1,70 +0,0 @@
1
- import { useMemo as D, useCallback as c } from "react";
2
- function l(e, t) {
3
- return e.getDate() === t.getDate() && e.getMonth() === t.getMonth() && e.getFullYear() === t.getFullYear();
4
- }
5
- function f(e) {
6
- const t = new Date(e);
7
- return t.setHours(0, 0, 0, 0), t;
8
- }
9
- function h(e) {
10
- const t = new Date(e);
11
- return t.setHours(23, 59, 59, 999), t;
12
- }
13
- function M(e, t = {}) {
14
- const { min: n, max: r, withTime: s = !1 } = t;
15
- return !s && (n && l(e, n) || r && l(e, r)) ? !1 : !!(n && e < n || r && e > r);
16
- }
17
- function m(e, t) {
18
- const n = new Date(e);
19
- if (!t)
20
- return n;
21
- const r = n.getDate(), s = new Date(e);
22
- s.setMonth(n.getMonth() + t + 1, 0);
23
- const a = s.getDate();
24
- return r >= a ? s : (n.setFullYear(s.getFullYear(), s.getMonth(), r), n);
25
- }
26
- function F(e, t) {
27
- return m(e, -1);
28
- }
29
- function g(e) {
30
- const t = new Date(e), n = new Date(t);
31
- return n.setFullYear(t.getFullYear(), t.getMonth() + 1, 0), n.setHours(0, 0, 0, 0), n.getDate();
32
- }
33
- function Y(e, t) {
34
- const n = new Date(e);
35
- return n.setFullYear(t), n;
36
- }
37
- function y(e, t) {
38
- const n = new Date(e), r = n.getFullYear(), s = n.getDate(), a = new Date(e);
39
- a.setFullYear(r, t, 15), a.setHours(0, 0, 0, 0);
40
- const u = g(a);
41
- return n.setMonth(t, Math.min(s, u)), n;
42
- }
43
- const w = (e) => {
44
- const { disableFuture: t, disablePast: n, maxDateTime: r, minDateTime: s, shouldDisableDate: a } = e;
45
- return (u, i) => {
46
- const o = /* @__PURE__ */ new Date();
47
- return a ? a(u) : t ? f(u) > o : n ? h(u) < o : s || r ? M(u, { min: s, max: r, withTime: i }) : !1;
48
- };
49
- }, d = (e) => {
50
- const t = D(() => w(e), [
51
- e.disableFuture,
52
- e.disablePast,
53
- e.shouldDisableDate,
54
- e.minDateTime,
55
- e.maxDateTime
56
- ]);
57
- return c(t, [t]);
58
- };
59
- export {
60
- m as addMonths,
61
- w as createDayDisableChecker,
62
- h as endOfDay,
63
- M as isDayMinMaxRestricted,
64
- l as isSameDate,
65
- y as setMonth,
66
- Y as setYear,
67
- f as startOfDay,
68
- F as subMonths,
69
- d as useDayDisableCheker
70
- };
@@ -1,34 +0,0 @@
1
- import { jsx as s, Fragment as p } from "react/jsx-runtime";
2
- import { forwardRef as f, useState as u, useImperativeHandle as c } from "react";
3
- import { AlertDialog as x } from "./bundle.es21.js";
4
- const g = f((a, l) => {
5
- const [i, n] = u([]);
6
- c(
7
- l,
8
- () => ({
9
- showAlert: (e) => {
10
- n((t) => [...t, e]);
11
- }
12
- }),
13
- []
14
- );
15
- const d = (e) => {
16
- n((t) => {
17
- const r = [...t], o = r.findIndex((m) => m.id === e);
18
- return o !== -1 && r.splice(o, 1), r;
19
- });
20
- };
21
- return /* @__PURE__ */ s(p, { children: i.map(({ id: e, ...t }) => /* @__PURE__ */ s(
22
- x,
23
- {
24
- defaultOpen: !0,
25
- onUnMounted: () => d(e),
26
- ...a,
27
- ...t
28
- },
29
- `alert-${e}`
30
- )) });
31
- });
32
- export {
33
- g as Viewport
34
- };