adjacent-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE +21 -0
  3. package/README.md +41 -0
  4. package/dist/button/button.css +177 -0
  5. package/dist/button/button.d.ts +25 -0
  6. package/dist/button/button.d.ts.map +1 -0
  7. package/dist/button/button.js +11 -0
  8. package/dist/button/button.js.map +1 -0
  9. package/dist/card/card.css +126 -0
  10. package/dist/card/card.d.ts +18 -0
  11. package/dist/card/card.d.ts.map +1 -0
  12. package/dist/card/card.js +38 -0
  13. package/dist/card/card.js.map +1 -0
  14. package/dist/checkbox/checkbox.css +116 -0
  15. package/dist/checkbox/checkbox.d.ts +13 -0
  16. package/dist/checkbox/checkbox.d.ts.map +1 -0
  17. package/dist/checkbox/checkbox.js +32 -0
  18. package/dist/checkbox/checkbox.js.map +1 -0
  19. package/dist/data-table/data-table.css +238 -0
  20. package/dist/data-table/data-table.d.ts +47 -0
  21. package/dist/data-table/data-table.d.ts.map +1 -0
  22. package/dist/data-table/data-table.js +58 -0
  23. package/dist/data-table/data-table.js.map +1 -0
  24. package/dist/divider/divider.css +35 -0
  25. package/dist/divider/divider.d.ts +12 -0
  26. package/dist/divider/divider.d.ts.map +1 -0
  27. package/dist/divider/divider.js +7 -0
  28. package/dist/divider/divider.js.map +1 -0
  29. package/dist/floating-action-button/floating-action-button.css +132 -0
  30. package/dist/floating-action-button/floating-action-button.d.ts +15 -0
  31. package/dist/floating-action-button/floating-action-button.d.ts.map +1 -0
  32. package/dist/floating-action-button/floating-action-button.js +8 -0
  33. package/dist/floating-action-button/floating-action-button.js.map +1 -0
  34. package/dist/index.d.ts +20 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +20 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/list/list.css +181 -0
  39. package/dist/list/list.d.ts +56 -0
  40. package/dist/list/list.d.ts.map +1 -0
  41. package/dist/list/list.js +33 -0
  42. package/dist/list/list.js.map +1 -0
  43. package/dist/menu/menu.css +170 -0
  44. package/dist/menu/menu.d.ts +70 -0
  45. package/dist/menu/menu.d.ts.map +1 -0
  46. package/dist/menu/menu.js +69 -0
  47. package/dist/menu/menu.js.map +1 -0
  48. package/dist/navigation/header/header.css +182 -0
  49. package/dist/navigation/header/header.d.ts +20 -0
  50. package/dist/navigation/header/header.d.ts.map +1 -0
  51. package/dist/navigation/header/header.js +23 -0
  52. package/dist/navigation/header/header.js.map +1 -0
  53. package/dist/navigation/index.d.ts +5 -0
  54. package/dist/navigation/index.d.ts.map +1 -0
  55. package/dist/navigation/index.js +5 -0
  56. package/dist/navigation/index.js.map +1 -0
  57. package/dist/navigation/link/link.d.ts +5 -0
  58. package/dist/navigation/link/link.d.ts.map +1 -0
  59. package/dist/navigation/link/link.js +6 -0
  60. package/dist/navigation/link/link.js.map +1 -0
  61. package/dist/navigation/shell/shell.css +21 -0
  62. package/dist/navigation/shell/shell.d.ts +22 -0
  63. package/dist/navigation/shell/shell.d.ts.map +1 -0
  64. package/dist/navigation/shell/shell.js +15 -0
  65. package/dist/navigation/shell/shell.js.map +1 -0
  66. package/dist/navigation/tabs/tabs.css +390 -0
  67. package/dist/navigation/tabs/tabs.d.ts +37 -0
  68. package/dist/navigation/tabs/tabs.d.ts.map +1 -0
  69. package/dist/navigation/tabs/tabs.js +74 -0
  70. package/dist/navigation/tabs/tabs.js.map +1 -0
  71. package/dist/page/page.css +15 -0
  72. package/dist/page/page.d.ts +32 -0
  73. package/dist/page/page.d.ts.map +1 -0
  74. package/dist/page/page.js +10 -0
  75. package/dist/page/page.js.map +1 -0
  76. package/dist/radio/radio.css +108 -0
  77. package/dist/radio/radio.d.ts +29 -0
  78. package/dist/radio/radio.d.ts.map +1 -0
  79. package/dist/radio/radio.js +23 -0
  80. package/dist/radio/radio.js.map +1 -0
  81. package/dist/runtime/use-display-mode.d.ts +9 -0
  82. package/dist/runtime/use-display-mode.d.ts.map +1 -0
  83. package/dist/runtime/use-display-mode.js +33 -0
  84. package/dist/runtime/use-display-mode.js.map +1 -0
  85. package/dist/runtime/use-keyboard.d.ts +8 -0
  86. package/dist/runtime/use-keyboard.d.ts.map +1 -0
  87. package/dist/runtime/use-keyboard.js +34 -0
  88. package/dist/runtime/use-keyboard.js.map +1 -0
  89. package/dist/runtime/use-viewport-tier.d.ts +10 -0
  90. package/dist/runtime/use-viewport-tier.d.ts.map +1 -0
  91. package/dist/runtime/use-viewport-tier.js +24 -0
  92. package/dist/runtime/use-viewport-tier.js.map +1 -0
  93. package/dist/snackbar/snackbar.css +95 -0
  94. package/dist/snackbar/snackbar.d.ts +15 -0
  95. package/dist/snackbar/snackbar.d.ts.map +1 -0
  96. package/dist/snackbar/snackbar.js +36 -0
  97. package/dist/snackbar/snackbar.js.map +1 -0
  98. package/dist/switch/switch.css +164 -0
  99. package/dist/switch/switch.d.ts +11 -0
  100. package/dist/switch/switch.d.ts.map +1 -0
  101. package/dist/switch/switch.js +11 -0
  102. package/dist/switch/switch.js.map +1 -0
  103. package/dist/tabs/tabs.css +165 -0
  104. package/dist/tabs/tabs.d.ts +25 -0
  105. package/dist/tabs/tabs.d.ts.map +1 -0
  106. package/dist/tabs/tabs.js +81 -0
  107. package/dist/tabs/tabs.js.map +1 -0
  108. package/dist/text/text.css +91 -0
  109. package/dist/text/text.d.ts +12 -0
  110. package/dist/text/text.d.ts.map +1 -0
  111. package/dist/text/text.js +17 -0
  112. package/dist/text/text.js.map +1 -0
  113. package/dist/text-area/text-area.css +11 -0
  114. package/dist/text-area/text-area.d.ts +13 -0
  115. package/dist/text-area/text-area.d.ts.map +1 -0
  116. package/dist/text-area/text-area.js +35 -0
  117. package/dist/text-area/text-area.js.map +1 -0
  118. package/dist/text-field/text-field.css +154 -0
  119. package/dist/text-field/text-field.d.ts +18 -0
  120. package/dist/text-field/text-field.d.ts.map +1 -0
  121. package/dist/text-field/text-field.js +32 -0
  122. package/dist/text-field/text-field.js.map +1 -0
  123. package/package.json +78 -0
@@ -0,0 +1,154 @@
1
+ @layer components {
2
+ .adj-text-field {
3
+ display: grid;
4
+ gap: 0.375rem;
5
+ width: 100%;
6
+ min-width: 5.5rem;
7
+ color: var(--adj-text-field-color, var(--foreground, CanvasText));
8
+ }
9
+
10
+ .adj-text-field__container {
11
+ position: relative;
12
+ display: flex;
13
+ align-items: center;
14
+ box-sizing: border-box;
15
+ min-height: var(--adj-text-field-height, var(--adj-control-height, 2.5rem));
16
+ color: inherit;
17
+ background: var(--adj-text-field-background, transparent);
18
+ border: 1px solid var(--adj-text-field-outline, var(--border, color-mix(in srgb, currentColor 38%, transparent)));
19
+ border-radius: var(--adj-text-field-radius, var(--radius, 0.625rem));
20
+ transition: border-color 140ms ease, background-color 140ms ease;
21
+ }
22
+
23
+ .adj-text-field[data-variant="filled"] .adj-text-field__container {
24
+ background: var(--adj-text-field-filled-background, var(--muted, color-mix(in srgb, currentColor 8%, Canvas)));
25
+ border: 0;
26
+ border-radius: var(--adj-text-field-radius, var(--radius, 0.625rem));
27
+ }
28
+
29
+ .adj-text-field__container:focus-within {
30
+ border-color: var(--adj-text-field-focus-color, var(--primary, currentColor));
31
+ }
32
+
33
+ .adj-text-field[data-variant="filled"] .adj-text-field__container:focus-within {
34
+ border-width: 0;
35
+ outline: 1px solid var(--adj-text-field-focus-color, var(--primary, currentColor));
36
+ outline-offset: -1px;
37
+ }
38
+
39
+ .adj-text-field__input-area {
40
+ position: relative;
41
+ display: flex;
42
+ gap: var(--adj-text-field-affix-gap, 0.5rem);
43
+ align-items: center;
44
+ min-width: 0;
45
+ padding-inline: 0.75rem;
46
+ flex: 1 1 auto;
47
+ }
48
+
49
+ .adj-text-field__input {
50
+ box-sizing: border-box;
51
+ width: 100%;
52
+ min-width: 0;
53
+ height: calc(var(--adj-text-field-height, var(--adj-control-height, 2.5rem)) - 2px);
54
+ padding: 0;
55
+ color: inherit;
56
+ font: inherit;
57
+ font-size: 1rem;
58
+ line-height: calc(var(--adj-text-field-height, var(--adj-control-height, 2.5rem)) - 2px);
59
+ caret-color: var(--adj-text-field-caret-color, var(--primary, currentColor));
60
+ background: transparent;
61
+ border: 0;
62
+ outline: 0;
63
+ }
64
+
65
+ .adj-text-field__input::placeholder {
66
+ color: var(--adj-text-field-placeholder-color, var(--muted-foreground, currentColor));
67
+ opacity: 1;
68
+ }
69
+
70
+ .adj-text-field__label {
71
+ min-width: 0;
72
+ overflow: hidden;
73
+ color: var(--adj-text-field-label-color, var(--muted-foreground, currentColor));
74
+ text-overflow: ellipsis;
75
+ white-space: nowrap;
76
+ }
77
+
78
+ .adj-text-field__leading-icon,
79
+ .adj-text-field__trailing-icon,
80
+ .adj-text-field__trailing-action {
81
+ display: grid;
82
+ width: 2.5rem;
83
+ height: 2.5rem;
84
+ flex: none;
85
+ color: var(--adj-text-field-icon-color, var(--muted-foreground, currentColor));
86
+ place-items: center;
87
+ }
88
+
89
+ .adj-text-field__leading-icon > svg,
90
+ .adj-text-field__trailing-icon > svg {
91
+ width: 1.5rem;
92
+ height: 1.5rem;
93
+ }
94
+
95
+ .adj-text-field__trailing-action > button {
96
+ max-width: 2.5rem;
97
+ max-height: 2.5rem;
98
+ }
99
+
100
+ .adj-text-field__prefix,
101
+ .adj-text-field__suffix {
102
+ display: inline-flex;
103
+ align-items: center;
104
+ align-self: stretch;
105
+ flex: none;
106
+ color: var(--adj-text-field-affix-color, var(--muted-foreground, currentColor));
107
+ }
108
+
109
+ .adj-text-field__supporting {
110
+ display: grid;
111
+ grid-template-columns: minmax(0, 1fr) auto;
112
+ gap: 1rem;
113
+ min-height: 1.25rem;
114
+ padding: 0.25rem 1rem 0;
115
+ color: var(--adj-text-field-supporting-color, var(--muted-foreground, currentColor));
116
+ }
117
+
118
+ .adj-text-field__supporting-text {
119
+ min-width: 0;
120
+ }
121
+
122
+ .adj-text-field__counter {
123
+ white-space: nowrap;
124
+ }
125
+
126
+ .adj-text-field[data-error="true"] .adj-text-field__container {
127
+ border-color: var(--adj-text-field-error-color, var(--destructive, #b3261e));
128
+ }
129
+
130
+ .adj-text-field[data-error="true"] .adj-text-field__label,
131
+ .adj-text-field[data-error="true"] .adj-text-field__supporting,
132
+ .adj-text-field[data-error="true"] .adj-text-field__trailing-icon {
133
+ color: var(--adj-text-field-error-color, var(--destructive, #b3261e));
134
+ }
135
+
136
+ .adj-text-field[data-error="true"] .adj-text-field__input {
137
+ caret-color: var(--adj-text-field-error-color, var(--destructive, #b3261e));
138
+ }
139
+
140
+ .adj-text-field[data-disabled="true"] {
141
+ cursor: default;
142
+ opacity: 0.38;
143
+ }
144
+
145
+ .adj-text-field[data-read-only="true"] .adj-text-field__container {
146
+ background: transparent;
147
+ }
148
+
149
+ @media (prefers-reduced-motion: reduce) {
150
+ .adj-text-field__container {
151
+ transition: none;
152
+ }
153
+ }
154
+ }
@@ -0,0 +1,18 @@
1
+ import { type InputHTMLAttributes, type ReactNode } from "react";
2
+ import "./text-field.css";
3
+ export type TextFieldVariant = "filled" | "outlined";
4
+ export interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "prefix" | "size"> {
5
+ readonly error?: ReactNode;
6
+ readonly label: ReactNode;
7
+ readonly leadingIcon?: ReactNode;
8
+ readonly prefixText?: ReactNode;
9
+ readonly showCounter?: boolean;
10
+ readonly suffixText?: ReactNode;
11
+ readonly supportingText?: ReactNode;
12
+ readonly trailingAction?: ReactNode;
13
+ readonly trailingIcon?: ReactNode;
14
+ readonly trailingIconLabel?: string;
15
+ readonly variant?: TextFieldVariant;
16
+ }
17
+ export declare function TextField({ "aria-describedby": ariaDescribedBy, className, defaultValue, disabled, error, id, label, leadingIcon, maxLength, onChange, prefixText, placeholder, readOnly, required, showCounter, suffixText, supportingText, trailingAction, trailingIcon, trailingIconLabel, value, variant, ...props }: TextFieldProps): import("react").JSX.Element;
18
+ //# sourceMappingURL=text-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-field.d.ts","sourceRoot":"","sources":["../../src/text-field/text-field.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,kBAAkB,CAAC;AAE1B,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAErD,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACtE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAOD,wBAAgB,SAAS,CAAC,EACxB,kBAAkB,EAAE,eAAe,EACnC,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,EAAE,EACF,KAAK,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,UAAU,EACV,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,WAAmB,EACnB,UAAU,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,KAAK,EACL,OAAoB,EACpB,GAAG,KAAK,EACT,EAAE,cAAc,+BAgHhB"}
@@ -0,0 +1,32 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useId, useState, } from "react";
4
+ import { Text } from "../text/text.js";
5
+ import "./text-field.css";
6
+ function valueLength(value) {
7
+ if (value === undefined || value === null)
8
+ return 0;
9
+ return String(value).length;
10
+ }
11
+ export function TextField({ "aria-describedby": ariaDescribedBy, className, defaultValue, disabled, error, id, label, leadingIcon, maxLength, onChange, prefixText, placeholder, readOnly, required, showCounter = false, suffixText, supportingText, trailingAction, trailingIcon, trailingIconLabel, value, variant = "outlined", ...props }) {
12
+ const generatedId = useId();
13
+ const inputId = id ?? `adj-text-field-${generatedId}`;
14
+ const supportingId = `${inputId}-supporting`;
15
+ const [uncontrolledLength, setUncontrolledLength] = useState(valueLength(defaultValue));
16
+ const controlled = value !== undefined;
17
+ const currentLength = controlled ? valueLength(value) : uncontrolledLength;
18
+ const hasError = error !== undefined && error !== null && error !== false;
19
+ const supportingContent = hasError ? error : supportingText;
20
+ const hasSupportingRow = supportingContent !== undefined || showCounter;
21
+ const describedBy = [ariaDescribedBy, hasSupportingRow ? supportingId : undefined]
22
+ .filter(Boolean)
23
+ .join(" ") || undefined;
24
+ const classes = ["adj-text-field", className].filter(Boolean).join(" ");
25
+ function handleChange(event) {
26
+ if (!controlled)
27
+ setUncontrolledLength(event.currentTarget.value.length);
28
+ onChange?.(event);
29
+ }
30
+ return (_jsxs("div", { className: classes, "data-disabled": disabled ? "true" : "false", "data-error": hasError ? "true" : "false", "data-read-only": readOnly ? "true" : "false", "data-variant": variant, children: [_jsxs(Text, { as: "label", className: "adj-text-field__label", htmlFor: inputId, variant: "label-large", children: [label, required ? _jsx("span", { "aria-hidden": "true", children: " *" }) : null] }), _jsxs("div", { className: "adj-text-field__container", children: [leadingIcon !== undefined ? (_jsx("span", { "aria-hidden": "true", className: "adj-text-field__leading-icon", children: leadingIcon })) : null, _jsxs("div", { className: "adj-text-field__input-area", children: [prefixText !== undefined ? (_jsx(Text, { className: "adj-text-field__prefix", variant: "body-large", children: prefixText })) : null, _jsx("input", { "aria-describedby": describedBy, "aria-invalid": hasError || undefined, className: "adj-text-field__input", defaultValue: defaultValue, disabled: disabled, id: inputId, maxLength: maxLength, onChange: handleChange, placeholder: placeholder, readOnly: readOnly, required: required, value: value, ...props }), suffixText !== undefined ? (_jsx(Text, { className: "adj-text-field__suffix", variant: "body-large", children: suffixText })) : null] }), trailingAction !== undefined ? (_jsx("span", { className: "adj-text-field__trailing-action", children: trailingAction })) : trailingIcon !== undefined ? (_jsx("span", { "aria-label": trailingIconLabel, "aria-hidden": trailingIconLabel === undefined ? "true" : undefined, className: "adj-text-field__trailing-icon", role: trailingIconLabel === undefined ? undefined : "img", children: trailingIcon })) : null] }), hasSupportingRow ? (_jsxs("div", { className: "adj-text-field__supporting", id: supportingId, children: [_jsx(Text, { "aria-live": hasError ? "polite" : undefined, className: "adj-text-field__supporting-text", variant: "body-small", children: supportingContent }), showCounter ? (_jsxs(Text, { className: "adj-text-field__counter", variant: "body-small", children: [currentLength, maxLength === undefined ? null : `/${maxLength}`] })) : null] })) : null] }));
31
+ }
32
+ //# sourceMappingURL=text-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-field.js","sourceRoot":"","sources":["../../src/text-field/text-field.tsx"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,78 @@
1
+ {
2
+ "name": "adjacent-ui",
3
+ "version": "0.1.0",
4
+ "description": "Mobile-first components, navigation, and measurement hooks that theme from your own design tokens.",
5
+ "keywords": [
6
+ "ui",
7
+ "components",
8
+ "mobile-first",
9
+ "react",
10
+ "adjacent"
11
+ ],
12
+ "license": "MIT",
13
+ "author": "Eric Kweyunga",
14
+ "homepage": "https://github.com/erickweyunga/adjacent-framework/blob/main/docs/ui.md",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/erickweyunga/adjacent-framework.git",
18
+ "directory": "packages/adjacent-ui"
19
+ },
20
+ "bugs": {
21
+ "url": "https://github.com/erickweyunga/adjacent-framework/issues"
22
+ },
23
+ "type": "module",
24
+ "sideEffects": [
25
+ "./dist/**/*.css"
26
+ ],
27
+ "exports": {
28
+ ".": {
29
+ "types": "./dist/index.d.ts",
30
+ "import": "./dist/index.js",
31
+ "default": "./dist/index.js"
32
+ },
33
+ "./navigation": {
34
+ "types": "./dist/navigation/index.d.ts",
35
+ "import": "./dist/navigation/index.js",
36
+ "default": "./dist/navigation/index.js"
37
+ },
38
+ "./page.css": "./dist/page/page.css",
39
+ "./*.css": "./dist/*.css",
40
+ "./package.json": "./package.json"
41
+ },
42
+ "files": [
43
+ "dist",
44
+ "README.md",
45
+ "CHANGELOG.md",
46
+ "LICENSE"
47
+ ],
48
+ "publishConfig": {
49
+ "access": "public"
50
+ },
51
+ "engines": {
52
+ "node": ">=20.9.0"
53
+ },
54
+ "scripts": {
55
+ "build": "tsc -p tsconfig.build.json && node scripts/copy-css.mjs",
56
+ "test": "bun test",
57
+ "typecheck": "tsc --noEmit",
58
+ "prepublishOnly": "npm run build"
59
+ },
60
+ "dependencies": {
61
+ "@base-ui/react": "^1.7.0"
62
+ },
63
+ "peerDependencies": {
64
+ "next": ">=16",
65
+ "react": ">=19"
66
+ },
67
+ "devDependencies": {
68
+ "@types/bun": "^1.3.13",
69
+ "@types/react": "^19",
70
+ "@types/react-dom": "^19",
71
+ "next": "16.3.2",
72
+ "react": "^19.2.8",
73
+ "react-dom": "^19.2.8",
74
+ "typescript": "^5"
75
+ },
76
+ "main": "./dist/index.js",
77
+ "types": "./dist/index.d.ts"
78
+ }