@entropix/react 1.0.0 → 1.0.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 (120) hide show
  1. package/dist/accordion.cjs +27 -0
  2. package/dist/accordion.css +57 -0
  3. package/dist/accordion.d.cts +30 -0
  4. package/dist/accordion.d.ts +30 -0
  5. package/dist/accordion.js +6 -0
  6. package/dist/button.cjs +15 -0
  7. package/dist/button.css +113 -0
  8. package/dist/button.d.cts +25 -0
  9. package/dist/button.d.ts +25 -0
  10. package/dist/button.js +6 -0
  11. package/dist/checkbox.cjs +15 -0
  12. package/dist/checkbox.css +89 -0
  13. package/dist/checkbox.d.cts +26 -0
  14. package/dist/checkbox.d.ts +26 -0
  15. package/dist/checkbox.js +6 -0
  16. package/dist/chunk-2MKJZEUK.cjs +4 -0
  17. package/dist/chunk-34IVVIO3.cjs +119 -0
  18. package/dist/chunk-36ZHHJYV.js +79 -0
  19. package/dist/chunk-5DKE5YQD.cjs +10 -0
  20. package/dist/chunk-664P2RGR.js +108 -0
  21. package/dist/chunk-6NKHMBF3.cjs +97 -0
  22. package/dist/chunk-6UAQCHIW.js +8 -0
  23. package/dist/chunk-7AUIZOEH.cjs +84 -0
  24. package/dist/chunk-AVCBDUKH.js +3 -0
  25. package/dist/chunk-B5JZHE4I.cjs +90 -0
  26. package/dist/chunk-BN57JPKV.js +26 -0
  27. package/dist/chunk-BY4E26CV.js +114 -0
  28. package/dist/chunk-CL6JXZIY.js +88 -0
  29. package/dist/chunk-CTT3LXMZ.js +76 -0
  30. package/dist/chunk-EASSPJBG.cjs +110 -0
  31. package/dist/chunk-EWY7MSXF.cjs +94 -0
  32. package/dist/chunk-FJGLK3I4.js +89 -0
  33. package/dist/chunk-GTVBKK3W.js +88 -0
  34. package/dist/chunk-GZXXUFCJ.cjs +15 -0
  35. package/dist/chunk-IXH7OVN3.cjs +86 -0
  36. package/dist/chunk-KGIUECLG.cjs +91 -0
  37. package/dist/chunk-LDOP6DVX.cjs +28 -0
  38. package/dist/chunk-LJK6KK2H.cjs +43 -0
  39. package/dist/chunk-OT2HJUCB.js +84 -0
  40. package/dist/chunk-PILZGMQG.js +87 -0
  41. package/dist/chunk-PN42JF6U.js +92 -0
  42. package/dist/chunk-RPIYYBFJ.cjs +90 -0
  43. package/dist/chunk-S6DVQAH4.cjs +240 -0
  44. package/dist/chunk-U5CZHO6D.js +13 -0
  45. package/dist/chunk-UGCCJI2F.js +111 -0
  46. package/dist/chunk-W6N4D4N4.js +230 -0
  47. package/dist/chunk-Y2M2LJGJ.js +41 -0
  48. package/dist/chunk-YJG5KX6O.cjs +81 -0
  49. package/dist/chunk-ZG4PZBSL.cjs +113 -0
  50. package/dist/dialog.cjs +39 -0
  51. package/dist/dialog.css +89 -0
  52. package/dist/dialog.d.cts +62 -0
  53. package/dist/dialog.d.ts +62 -0
  54. package/dist/dialog.js +6 -0
  55. package/dist/index.cjs +170 -1223
  56. package/dist/index.d.cts +17 -477
  57. package/dist/index.d.ts +17 -477
  58. package/dist/index.js +19 -1189
  59. package/dist/input.cjs +15 -0
  60. package/dist/input.css +135 -0
  61. package/dist/input.d.cts +37 -0
  62. package/dist/input.d.ts +37 -0
  63. package/dist/input.js +6 -0
  64. package/dist/layout.cjs +25 -0
  65. package/dist/layout.css +176 -0
  66. package/dist/layout.d.cts +108 -0
  67. package/dist/layout.d.ts +108 -0
  68. package/dist/layout.js +4 -0
  69. package/dist/menu.cjs +27 -0
  70. package/dist/menu.css +51 -0
  71. package/dist/menu.d.cts +31 -0
  72. package/dist/menu.d.ts +31 -0
  73. package/dist/menu.js +6 -0
  74. package/dist/radio.cjs +19 -0
  75. package/dist/radio.css +93 -0
  76. package/dist/radio.d.cts +37 -0
  77. package/dist/radio.d.ts +37 -0
  78. package/dist/radio.js +6 -0
  79. package/dist/select.cjs +27 -0
  80. package/dist/select.css +114 -0
  81. package/dist/select.d.cts +59 -0
  82. package/dist/select.d.ts +59 -0
  83. package/dist/select.js +6 -0
  84. package/dist/styles/accordion.css +1 -67
  85. package/dist/styles/button.css +1 -133
  86. package/dist/styles/checkbox.css +1 -119
  87. package/dist/styles/dialog.css +1 -102
  88. package/dist/styles/index.css +1 -14
  89. package/dist/styles/input.css +1 -176
  90. package/dist/styles/layout.css +1 -125
  91. package/dist/styles/menu.css +1 -62
  92. package/dist/styles/radio.css +1 -128
  93. package/dist/styles/select.css +1 -148
  94. package/dist/styles/switch.css +1 -53
  95. package/dist/styles/tabs.css +1 -84
  96. package/dist/styles/toggle.css +1 -45
  97. package/dist/switch.cjs +16 -0
  98. package/dist/switch.css +89 -0
  99. package/dist/switch.d.cts +14 -0
  100. package/dist/switch.d.ts +14 -0
  101. package/dist/switch.js +7 -0
  102. package/dist/tabs.cjs +27 -0
  103. package/dist/tabs.css +69 -0
  104. package/dist/tabs.d.cts +31 -0
  105. package/dist/tabs.d.ts +31 -0
  106. package/dist/tabs.js +6 -0
  107. package/dist/textarea.cjs +15 -0
  108. package/dist/textarea.css +135 -0
  109. package/dist/textarea.d.cts +41 -0
  110. package/dist/textarea.d.ts +41 -0
  111. package/dist/textarea.js +6 -0
  112. package/dist/toggle.cjs +19 -0
  113. package/dist/toggle.css +41 -0
  114. package/dist/toggle.d.cts +34 -0
  115. package/dist/toggle.d.ts +34 -0
  116. package/dist/toggle.js +6 -0
  117. package/package.json +135 -4
  118. package/dist/index.cjs.map +0 -1
  119. package/dist/index.css.map +0 -1
  120. package/dist/index.js.map +0 -1
package/dist/input.cjs ADDED
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var chunkEASSPJBG_cjs = require('./chunk-EASSPJBG.cjs');
4
+ require('./chunk-2MKJZEUK.cjs');
5
+ require('./chunk-LJK6KK2H.cjs');
6
+ require('./chunk-5DKE5YQD.cjs');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "Input", {
11
+ enumerable: true,
12
+ get: function () { return chunkEASSPJBG_cjs.Input; }
13
+ });
14
+ //# sourceMappingURL=input.cjs.map
15
+ //# sourceMappingURL=input.cjs.map
package/dist/input.css ADDED
@@ -0,0 +1,135 @@
1
+ /* src/styles/input.css */
2
+ .entropix-input-wrapper {
3
+ --input-border-color: var(--entropix-color-border-default);
4
+ --input-border-radius: var(--entropix-radius-md);
5
+ --input-bg: var(--entropix-color-bg-primary);
6
+ --input-font-size: var(--entropix-font-size-sm);
7
+ --input-padding-y: var(--entropix-spacing-2);
8
+ --input-padding-x: var(--entropix-spacing-3);
9
+ --input-focus-color: var(--entropix-color-border-focus);
10
+ --input-error-color: var(--entropix-color-border-danger);
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: var(--entropix-spacing-1);
14
+ width: 100%;
15
+ }
16
+ .entropix-input-label {
17
+ display: block;
18
+ font-family: var(--entropix-font-family-sans);
19
+ font-size: var(--entropix-font-size-sm);
20
+ font-weight: var(--entropix-font-weight-medium);
21
+ color: var(--entropix-color-text-primary);
22
+ line-height: var(--entropix-line-height-normal);
23
+ }
24
+ .entropix-input-required {
25
+ color: var(--entropix-color-text-danger);
26
+ margin-left: var(--entropix-spacing-1);
27
+ }
28
+ .entropix-input,
29
+ .entropix-textarea {
30
+ display: block;
31
+ width: 100%;
32
+ border: 1px solid var(--input-border-color);
33
+ border-radius: var(--input-border-radius);
34
+ background: var(--input-bg);
35
+ color: var(--entropix-color-text-primary);
36
+ font-family: var(--entropix-font-family-sans);
37
+ font-size: var(--input-font-size);
38
+ line-height: var(--entropix-line-height-normal);
39
+ padding: var(--input-padding-y) var(--input-padding-x);
40
+ transition:
41
+ border-color var(--entropix-duration-fast) var(--entropix-easing-default),
42
+ box-shadow var(--entropix-duration-fast) var(--entropix-easing-default),
43
+ background var(--entropix-duration-fast) var(--entropix-easing-default);
44
+ }
45
+ .entropix-input::placeholder,
46
+ .entropix-textarea::placeholder {
47
+ color: var(--entropix-color-text-tertiary);
48
+ }
49
+ .entropix-input:focus,
50
+ .entropix-textarea:focus {
51
+ outline: none;
52
+ border-color: var(--input-focus-color);
53
+ box-shadow: 0 0 0 1px var(--input-focus-color);
54
+ }
55
+ .entropix-input:focus-visible,
56
+ .entropix-textarea:focus-visible {
57
+ outline: 2px solid var(--input-focus-color);
58
+ outline-offset: 2px;
59
+ }
60
+ .entropix-input:hover:not(:disabled):not(:focus),
61
+ .entropix-textarea:hover:not(:disabled):not(:focus) {
62
+ border-color: var(--entropix-color-border-hover);
63
+ }
64
+ .entropix-input[data-variant=filled],
65
+ .entropix-textarea[data-variant=filled] {
66
+ background: var(--entropix-color-bg-secondary);
67
+ border-color: transparent;
68
+ }
69
+ .entropix-input[data-variant=filled]:focus,
70
+ .entropix-textarea[data-variant=filled]:focus {
71
+ background: var(--input-bg);
72
+ border-color: var(--input-focus-color);
73
+ }
74
+ .entropix-input[data-size=sm],
75
+ .entropix-textarea[data-size=sm] {
76
+ padding: var(--entropix-spacing-1) var(--entropix-spacing-2);
77
+ font-size: var(--entropix-font-size-xs);
78
+ border-radius: var(--entropix-radius-sm);
79
+ }
80
+ .entropix-input[data-size=md],
81
+ .entropix-textarea[data-size=md] {
82
+ padding: var(--input-padding-y) var(--input-padding-x);
83
+ font-size: var(--input-font-size);
84
+ }
85
+ .entropix-input[data-size=lg],
86
+ .entropix-textarea[data-size=lg] {
87
+ padding: var(--entropix-spacing-3) var(--entropix-spacing-4);
88
+ font-size: var(--entropix-font-size-base);
89
+ border-radius: var(--entropix-radius-lg);
90
+ }
91
+ .entropix-input[data-state=invalid],
92
+ .entropix-textarea[data-state=invalid] {
93
+ border-color: var(--input-error-color);
94
+ }
95
+ .entropix-input[data-state=invalid]:focus,
96
+ .entropix-textarea[data-state=invalid]:focus {
97
+ border-color: var(--input-error-color);
98
+ box-shadow: 0 0 0 1px var(--input-error-color);
99
+ }
100
+ .entropix-input:disabled,
101
+ .entropix-textarea:disabled,
102
+ .entropix-input[data-state=disabled],
103
+ .entropix-textarea[data-state=disabled] {
104
+ opacity: 0.5;
105
+ cursor: not-allowed;
106
+ pointer-events: none;
107
+ }
108
+ .entropix-input-helper {
109
+ font-family: var(--entropix-font-family-sans);
110
+ font-size: var(--entropix-font-size-xs);
111
+ color: var(--entropix-color-text-secondary);
112
+ line-height: var(--entropix-line-height-normal);
113
+ }
114
+ .entropix-input-error {
115
+ font-family: var(--entropix-font-family-sans);
116
+ font-size: var(--entropix-font-size-xs);
117
+ color: var(--entropix-color-text-danger);
118
+ line-height: var(--entropix-line-height-normal);
119
+ }
120
+ .entropix-textarea {
121
+ min-height: 80px;
122
+ }
123
+ @media (max-width: 767px) {
124
+ .entropix-input,
125
+ .entropix-textarea {
126
+ min-height: 44px;
127
+ font-size: var(--entropix-font-size-base);
128
+ }
129
+ .entropix-input[data-size=sm],
130
+ .entropix-textarea[data-size=sm] {
131
+ min-height: 36px;
132
+ font-size: var(--entropix-font-size-sm);
133
+ }
134
+ }
135
+ /*# sourceMappingURL=input.css.map */
@@ -0,0 +1,37 @@
1
+ import * as react from 'react';
2
+
3
+ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange" | "disabled" | "value" | "size"> {
4
+ /** Controlled value */
5
+ value?: string;
6
+ /** Default value for uncontrolled mode */
7
+ defaultValue?: string;
8
+ /** Called when the value changes */
9
+ onChange?: (value: string) => void;
10
+ /** Whether the input is disabled */
11
+ disabled?: boolean;
12
+ /** Whether the input is read-only */
13
+ readOnly?: boolean;
14
+ /** Whether the input is required */
15
+ required?: boolean;
16
+ /** Whether the input is in an invalid state */
17
+ invalid?: boolean;
18
+ /** Label text */
19
+ label?: string;
20
+ /** Helper text displayed below the input */
21
+ helperText?: string;
22
+ /** Error message displayed below the input (sets invalid=true when present) */
23
+ errorMessage?: string;
24
+ /** Visual variant */
25
+ variant?: "default" | "filled";
26
+ /** Size */
27
+ size?: "sm" | "md" | "lg";
28
+ }
29
+ /**
30
+ * Input component — web adapter for @entropix/core's useInput.
31
+ *
32
+ * Renders a wrapper div with label, input, helper text, and error message.
33
+ * Sets data-state, data-variant, and data-size attributes for CSS targeting.
34
+ */
35
+ declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
36
+
37
+ export { Input, type InputProps };
@@ -0,0 +1,37 @@
1
+ import * as react from 'react';
2
+
3
+ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange" | "disabled" | "value" | "size"> {
4
+ /** Controlled value */
5
+ value?: string;
6
+ /** Default value for uncontrolled mode */
7
+ defaultValue?: string;
8
+ /** Called when the value changes */
9
+ onChange?: (value: string) => void;
10
+ /** Whether the input is disabled */
11
+ disabled?: boolean;
12
+ /** Whether the input is read-only */
13
+ readOnly?: boolean;
14
+ /** Whether the input is required */
15
+ required?: boolean;
16
+ /** Whether the input is in an invalid state */
17
+ invalid?: boolean;
18
+ /** Label text */
19
+ label?: string;
20
+ /** Helper text displayed below the input */
21
+ helperText?: string;
22
+ /** Error message displayed below the input (sets invalid=true when present) */
23
+ errorMessage?: string;
24
+ /** Visual variant */
25
+ variant?: "default" | "filled";
26
+ /** Size */
27
+ size?: "sm" | "md" | "lg";
28
+ }
29
+ /**
30
+ * Input component — web adapter for @entropix/core's useInput.
31
+ *
32
+ * Renders a wrapper div with label, input, helper text, and error message.
33
+ * Sets data-state, data-variant, and data-size attributes for CSS targeting.
34
+ */
35
+ declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
36
+
37
+ export { Input, type InputProps };
package/dist/input.js ADDED
@@ -0,0 +1,6 @@
1
+ export { Input } from './chunk-664P2RGR.js';
2
+ import './chunk-AVCBDUKH.js';
3
+ import './chunk-Y2M2LJGJ.js';
4
+ import './chunk-6UAQCHIW.js';
5
+ //# sourceMappingURL=input.js.map
6
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var chunkYJG5KX6O_cjs = require('./chunk-YJG5KX6O.cjs');
4
+ require('./chunk-5DKE5YQD.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "Container", {
9
+ enumerable: true,
10
+ get: function () { return chunkYJG5KX6O_cjs.Container; }
11
+ });
12
+ Object.defineProperty(exports, "Divider", {
13
+ enumerable: true,
14
+ get: function () { return chunkYJG5KX6O_cjs.Divider; }
15
+ });
16
+ Object.defineProperty(exports, "Inline", {
17
+ enumerable: true,
18
+ get: function () { return chunkYJG5KX6O_cjs.Inline; }
19
+ });
20
+ Object.defineProperty(exports, "Stack", {
21
+ enumerable: true,
22
+ get: function () { return chunkYJG5KX6O_cjs.Stack; }
23
+ });
24
+ //# sourceMappingURL=layout.cjs.map
25
+ //# sourceMappingURL=layout.cjs.map
@@ -0,0 +1,176 @@
1
+ /* src/styles/layout.css */
2
+ .entropix-stack {
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: var(--entropix-space-layout-stack);
6
+ }
7
+ .entropix-stack--gap-none {
8
+ gap: 0;
9
+ }
10
+ .entropix-stack--gap-xs {
11
+ gap: var(--entropix-spacing-1);
12
+ }
13
+ .entropix-stack--gap-sm {
14
+ gap: var(--entropix-spacing-2);
15
+ }
16
+ .entropix-stack--gap-md {
17
+ gap: var(--entropix-spacing-4);
18
+ }
19
+ .entropix-stack--gap-lg {
20
+ gap: var(--entropix-spacing-6);
21
+ }
22
+ .entropix-stack--gap-xl {
23
+ gap: var(--entropix-spacing-8);
24
+ }
25
+ .entropix-stack--gap-2xl {
26
+ gap: var(--entropix-spacing-12);
27
+ }
28
+ .entropix-stack--align-start {
29
+ align-items: flex-start;
30
+ }
31
+ .entropix-stack--align-center {
32
+ align-items: center;
33
+ }
34
+ .entropix-stack--align-end {
35
+ align-items: flex-end;
36
+ }
37
+ .entropix-stack--align-stretch {
38
+ align-items: stretch;
39
+ }
40
+ .entropix-stack--full-width {
41
+ width: 100%;
42
+ }
43
+ .entropix-inline {
44
+ display: flex;
45
+ flex-direction: row;
46
+ align-items: center;
47
+ gap: var(--entropix-space-layout-inline);
48
+ }
49
+ .entropix-inline--gap-none {
50
+ gap: 0;
51
+ }
52
+ .entropix-inline--gap-xs {
53
+ gap: var(--entropix-spacing-1);
54
+ }
55
+ .entropix-inline--gap-sm {
56
+ gap: var(--entropix-spacing-2);
57
+ }
58
+ .entropix-inline--gap-md {
59
+ gap: var(--entropix-spacing-4);
60
+ }
61
+ .entropix-inline--gap-lg {
62
+ gap: var(--entropix-spacing-6);
63
+ }
64
+ .entropix-inline--gap-xl {
65
+ gap: var(--entropix-spacing-8);
66
+ }
67
+ .entropix-inline--gap-2xl {
68
+ gap: var(--entropix-spacing-12);
69
+ }
70
+ .entropix-inline--align-start {
71
+ align-items: flex-start;
72
+ }
73
+ .entropix-inline--align-center {
74
+ align-items: center;
75
+ }
76
+ .entropix-inline--align-end {
77
+ align-items: flex-end;
78
+ }
79
+ .entropix-inline--align-stretch {
80
+ align-items: stretch;
81
+ }
82
+ .entropix-inline--align-baseline {
83
+ align-items: baseline;
84
+ }
85
+ .entropix-inline--justify-start {
86
+ justify-content: flex-start;
87
+ }
88
+ .entropix-inline--justify-center {
89
+ justify-content: center;
90
+ }
91
+ .entropix-inline--justify-end {
92
+ justify-content: flex-end;
93
+ }
94
+ .entropix-inline--justify-between {
95
+ justify-content: space-between;
96
+ }
97
+ .entropix-inline--justify-around {
98
+ justify-content: space-around;
99
+ }
100
+ .entropix-inline--wrap {
101
+ flex-wrap: wrap;
102
+ }
103
+ .entropix-container {
104
+ width: 100%;
105
+ margin-left: auto;
106
+ margin-right: auto;
107
+ padding-left: var(--entropix-space-layout-page-margin);
108
+ padding-right: var(--entropix-space-layout-page-margin);
109
+ }
110
+ .entropix-container--xs {
111
+ max-width: 480px;
112
+ }
113
+ .entropix-container--sm {
114
+ max-width: 640px;
115
+ }
116
+ .entropix-container--md {
117
+ max-width: 768px;
118
+ }
119
+ .entropix-container--lg {
120
+ max-width: 1024px;
121
+ }
122
+ .entropix-container--xl {
123
+ max-width: 1280px;
124
+ }
125
+ .entropix-container--full {
126
+ max-width: 100%;
127
+ }
128
+ .entropix-container--center {
129
+ display: flex;
130
+ flex-direction: column;
131
+ align-items: center;
132
+ }
133
+ .entropix-divider {
134
+ border: 0;
135
+ border-top: 1px solid var(--entropix-color-border-default);
136
+ margin: 0;
137
+ width: 100%;
138
+ }
139
+ .entropix-divider--vertical {
140
+ border-top: 0;
141
+ border-left: 1px solid var(--entropix-color-border-default);
142
+ width: auto;
143
+ height: auto;
144
+ align-self: stretch;
145
+ }
146
+ .entropix-divider--spacing-sm {
147
+ margin: var(--entropix-spacing-2) 0;
148
+ }
149
+ .entropix-divider--spacing-md {
150
+ margin: var(--entropix-spacing-4) 0;
151
+ }
152
+ .entropix-divider--spacing-lg {
153
+ margin: var(--entropix-spacing-6) 0;
154
+ }
155
+ .entropix-divider--vertical.entropix-divider--spacing-sm {
156
+ margin: 0 var(--entropix-spacing-2);
157
+ }
158
+ .entropix-divider--vertical.entropix-divider--spacing-md {
159
+ margin: 0 var(--entropix-spacing-4);
160
+ }
161
+ .entropix-divider--vertical.entropix-divider--spacing-lg {
162
+ margin: 0 var(--entropix-spacing-6);
163
+ }
164
+ @media (min-width: 768px) {
165
+ .entropix-container {
166
+ padding-left: var(--entropix-space-layout-page-margin-md);
167
+ padding-right: var(--entropix-space-layout-page-margin-md);
168
+ }
169
+ }
170
+ @media (min-width: 1024px) {
171
+ .entropix-container {
172
+ padding-left: var(--entropix-space-layout-page-margin-lg);
173
+ padding-right: var(--entropix-space-layout-page-margin-lg);
174
+ }
175
+ }
176
+ /*# sourceMappingURL=layout.css.map */
@@ -0,0 +1,108 @@
1
+ import * as react from 'react';
2
+
3
+ type SpacingSize$1 = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
4
+ interface StackProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ /** Gap between children. Default uses --entropix-space-layout-stack token */
6
+ gap?: SpacingSize$1;
7
+ /** Cross-axis alignment */
8
+ align?: "start" | "center" | "end" | "stretch";
9
+ /** Whether to take full width */
10
+ fullWidth?: boolean;
11
+ /** Render as a different element */
12
+ as?: React.ElementType;
13
+ }
14
+ /**
15
+ * Stack — vertical flex layout primitive.
16
+ *
17
+ * Uses the `space.layout.stack` token (16px) as default gap.
18
+ *
19
+ * ```tsx
20
+ * <Stack gap="lg" align="center">
21
+ * <Button>First</Button>
22
+ * <Button>Second</Button>
23
+ * </Stack>
24
+ * ```
25
+ */
26
+ declare const Stack: react.ForwardRefExoticComponent<StackProps & react.RefAttributes<HTMLDivElement>>;
27
+
28
+ type SpacingSize = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
29
+ interface InlineProps extends React.HTMLAttributes<HTMLDivElement> {
30
+ /** Gap between children. Default uses --entropix-space-layout-inline token */
31
+ gap?: SpacingSize;
32
+ /** Cross-axis alignment */
33
+ align?: "start" | "center" | "end" | "stretch" | "baseline";
34
+ /** Main-axis justification */
35
+ justify?: "start" | "center" | "end" | "between" | "around";
36
+ /** Whether to wrap children */
37
+ wrap?: boolean;
38
+ /** Render as a different element */
39
+ as?: React.ElementType;
40
+ }
41
+ /**
42
+ * Inline — horizontal flex layout primitive.
43
+ *
44
+ * Uses the `space.layout.inline` token (12px) as default gap.
45
+ *
46
+ * ```tsx
47
+ * <Inline gap="sm" justify="between" wrap>
48
+ * <Button variant="primary">Save</Button>
49
+ * <Button variant="ghost">Cancel</Button>
50
+ * </Inline>
51
+ * ```
52
+ */
53
+ declare const Inline: react.ForwardRefExoticComponent<InlineProps & react.RefAttributes<HTMLDivElement>>;
54
+
55
+ type ContainerSize = "xs" | "sm" | "md" | "lg" | "xl" | "full";
56
+ interface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {
57
+ /** Maximum width constraint. Default: "lg" (1024px) */
58
+ maxWidth?: ContainerSize;
59
+ /** Whether to center children vertically */
60
+ center?: boolean;
61
+ /** Render as a different element */
62
+ as?: React.ElementType;
63
+ }
64
+ /**
65
+ * Container — page-level width constraint with horizontal margins.
66
+ *
67
+ * Uses the `space.layout.page-margin` token (24px) for horizontal padding.
68
+ * Centers itself horizontally via auto margins.
69
+ *
70
+ * ```tsx
71
+ * <Container maxWidth="lg">
72
+ * <Stack gap="xl">
73
+ * <h1>Page Title</h1>
74
+ * <p>Content</p>
75
+ * </Stack>
76
+ * </Container>
77
+ * ```
78
+ */
79
+ declare const Container: react.ForwardRefExoticComponent<ContainerProps & react.RefAttributes<HTMLDivElement>>;
80
+
81
+ interface DividerProps extends React.HTMLAttributes<HTMLHRElement> {
82
+ /** Orientation of the divider */
83
+ orientation?: "horizontal" | "vertical";
84
+ /** Spacing above and below (or left and right for vertical) */
85
+ spacing?: "sm" | "md" | "lg";
86
+ }
87
+ /**
88
+ * Divider — visual separator line.
89
+ *
90
+ * Uses the `color.border.default` token for line color.
91
+ *
92
+ * ```tsx
93
+ * <Stack>
94
+ * <p>Section A</p>
95
+ * <Divider spacing="md" />
96
+ * <p>Section B</p>
97
+ * </Stack>
98
+ *
99
+ * <Inline>
100
+ * <span>Left</span>
101
+ * <Divider orientation="vertical" spacing="sm" />
102
+ * <span>Right</span>
103
+ * </Inline>
104
+ * ```
105
+ */
106
+ declare const Divider: react.ForwardRefExoticComponent<DividerProps & react.RefAttributes<HTMLHRElement>>;
107
+
108
+ export { Container, type ContainerProps, type ContainerSize, Divider, type DividerProps, Inline, type InlineProps, type SpacingSize$1 as SpacingSize, Stack, type StackProps };
@@ -0,0 +1,108 @@
1
+ import * as react from 'react';
2
+
3
+ type SpacingSize$1 = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
4
+ interface StackProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ /** Gap between children. Default uses --entropix-space-layout-stack token */
6
+ gap?: SpacingSize$1;
7
+ /** Cross-axis alignment */
8
+ align?: "start" | "center" | "end" | "stretch";
9
+ /** Whether to take full width */
10
+ fullWidth?: boolean;
11
+ /** Render as a different element */
12
+ as?: React.ElementType;
13
+ }
14
+ /**
15
+ * Stack — vertical flex layout primitive.
16
+ *
17
+ * Uses the `space.layout.stack` token (16px) as default gap.
18
+ *
19
+ * ```tsx
20
+ * <Stack gap="lg" align="center">
21
+ * <Button>First</Button>
22
+ * <Button>Second</Button>
23
+ * </Stack>
24
+ * ```
25
+ */
26
+ declare const Stack: react.ForwardRefExoticComponent<StackProps & react.RefAttributes<HTMLDivElement>>;
27
+
28
+ type SpacingSize = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
29
+ interface InlineProps extends React.HTMLAttributes<HTMLDivElement> {
30
+ /** Gap between children. Default uses --entropix-space-layout-inline token */
31
+ gap?: SpacingSize;
32
+ /** Cross-axis alignment */
33
+ align?: "start" | "center" | "end" | "stretch" | "baseline";
34
+ /** Main-axis justification */
35
+ justify?: "start" | "center" | "end" | "between" | "around";
36
+ /** Whether to wrap children */
37
+ wrap?: boolean;
38
+ /** Render as a different element */
39
+ as?: React.ElementType;
40
+ }
41
+ /**
42
+ * Inline — horizontal flex layout primitive.
43
+ *
44
+ * Uses the `space.layout.inline` token (12px) as default gap.
45
+ *
46
+ * ```tsx
47
+ * <Inline gap="sm" justify="between" wrap>
48
+ * <Button variant="primary">Save</Button>
49
+ * <Button variant="ghost">Cancel</Button>
50
+ * </Inline>
51
+ * ```
52
+ */
53
+ declare const Inline: react.ForwardRefExoticComponent<InlineProps & react.RefAttributes<HTMLDivElement>>;
54
+
55
+ type ContainerSize = "xs" | "sm" | "md" | "lg" | "xl" | "full";
56
+ interface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {
57
+ /** Maximum width constraint. Default: "lg" (1024px) */
58
+ maxWidth?: ContainerSize;
59
+ /** Whether to center children vertically */
60
+ center?: boolean;
61
+ /** Render as a different element */
62
+ as?: React.ElementType;
63
+ }
64
+ /**
65
+ * Container — page-level width constraint with horizontal margins.
66
+ *
67
+ * Uses the `space.layout.page-margin` token (24px) for horizontal padding.
68
+ * Centers itself horizontally via auto margins.
69
+ *
70
+ * ```tsx
71
+ * <Container maxWidth="lg">
72
+ * <Stack gap="xl">
73
+ * <h1>Page Title</h1>
74
+ * <p>Content</p>
75
+ * </Stack>
76
+ * </Container>
77
+ * ```
78
+ */
79
+ declare const Container: react.ForwardRefExoticComponent<ContainerProps & react.RefAttributes<HTMLDivElement>>;
80
+
81
+ interface DividerProps extends React.HTMLAttributes<HTMLHRElement> {
82
+ /** Orientation of the divider */
83
+ orientation?: "horizontal" | "vertical";
84
+ /** Spacing above and below (or left and right for vertical) */
85
+ spacing?: "sm" | "md" | "lg";
86
+ }
87
+ /**
88
+ * Divider — visual separator line.
89
+ *
90
+ * Uses the `color.border.default` token for line color.
91
+ *
92
+ * ```tsx
93
+ * <Stack>
94
+ * <p>Section A</p>
95
+ * <Divider spacing="md" />
96
+ * <p>Section B</p>
97
+ * </Stack>
98
+ *
99
+ * <Inline>
100
+ * <span>Left</span>
101
+ * <Divider orientation="vertical" spacing="sm" />
102
+ * <span>Right</span>
103
+ * </Inline>
104
+ * ```
105
+ */
106
+ declare const Divider: react.ForwardRefExoticComponent<DividerProps & react.RefAttributes<HTMLHRElement>>;
107
+
108
+ export { Container, type ContainerProps, type ContainerSize, Divider, type DividerProps, Inline, type InlineProps, type SpacingSize$1 as SpacingSize, Stack, type StackProps };
package/dist/layout.js ADDED
@@ -0,0 +1,4 @@
1
+ export { Container, Divider, Inline, Stack } from './chunk-CTT3LXMZ.js';
2
+ import './chunk-6UAQCHIW.js';
3
+ //# sourceMappingURL=layout.js.map
4
+ //# sourceMappingURL=layout.js.map
package/dist/menu.cjs ADDED
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ var chunk6NKHMBF3_cjs = require('./chunk-6NKHMBF3.cjs');
4
+ require('./chunk-LDOP6DVX.cjs');
5
+ require('./chunk-LJK6KK2H.cjs');
6
+ require('./chunk-5DKE5YQD.cjs');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "Menu", {
11
+ enumerable: true,
12
+ get: function () { return chunk6NKHMBF3_cjs.Menu; }
13
+ });
14
+ Object.defineProperty(exports, "MenuContent", {
15
+ enumerable: true,
16
+ get: function () { return chunk6NKHMBF3_cjs.MenuContent; }
17
+ });
18
+ Object.defineProperty(exports, "MenuItem", {
19
+ enumerable: true,
20
+ get: function () { return chunk6NKHMBF3_cjs.MenuItem; }
21
+ });
22
+ Object.defineProperty(exports, "MenuTrigger", {
23
+ enumerable: true,
24
+ get: function () { return chunk6NKHMBF3_cjs.MenuTrigger; }
25
+ });
26
+ //# sourceMappingURL=menu.cjs.map
27
+ //# sourceMappingURL=menu.cjs.map