gbs-add-block 2.1.0 → 2.3.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 (129) hide show
  1. package/.gbs/skills/gbs-components/SKILL.md +190 -134
  2. package/.gbs/skills/gbs-components/references/install.md +25 -3
  3. package/.gbs/skills/gbs-components/references/styling.md +246 -207
  4. package/CHANGELOG.md +74 -0
  5. package/README.md +154 -23
  6. package/index.cjs +212 -3
  7. package/package.json +41 -10
  8. package/schema/passport-v1.schema.json +204 -0
  9. package/source/beta-components/accordion/passport.json +259 -0
  10. package/source/beta-components/accordion/styles.css +207 -208
  11. package/source/beta-components/alert/passport.json +250 -0
  12. package/source/beta-components/alert/styles.css +154 -155
  13. package/source/beta-components/avatar/passport.json +294 -0
  14. package/source/beta-components/avatar/styles.css +225 -226
  15. package/source/beta-components/badge/passport.json +332 -0
  16. package/source/beta-components/badge/styles.css +203 -204
  17. package/source/beta-components/breadcrumb/passport.json +243 -0
  18. package/source/beta-components/breadcrumb/styles.css +138 -140
  19. package/source/beta-components/button/passport.json +402 -0
  20. package/source/beta-components/button/passport.manual.json +31 -0
  21. package/source/beta-components/button/styles.css +232 -234
  22. package/source/beta-components/card/passport.json +337 -0
  23. package/source/beta-components/card/styles.css +230 -232
  24. package/source/beta-components/checkbox/passport.json +456 -0
  25. package/source/beta-components/checkbox/styles.css +211 -213
  26. package/source/beta-components/combobox/passport.json +456 -0
  27. package/source/beta-components/combobox/styles.css +419 -417
  28. package/source/beta-components/data-grid/agent/coerce.ts +368 -0
  29. package/source/beta-components/data-grid/agent/contract.ts +410 -0
  30. package/source/beta-components/data-grid/agent/dataset.ts +92 -0
  31. package/source/beta-components/data-grid/agent/engine.ts +470 -0
  32. package/source/beta-components/data-grid/agent/executors.ts +155 -0
  33. package/source/beta-components/data-grid/agent/index.ts +79 -0
  34. package/source/beta-components/data-grid/agent/intent.ts +324 -0
  35. package/source/beta-components/data-grid/agent/operations.ts +335 -0
  36. package/source/beta-components/data-grid/agent/validate.ts +630 -0
  37. package/source/beta-components/data-grid/agent/webmcp.ts +107 -0
  38. package/source/beta-components/data-grid/index.ts +14 -7
  39. package/source/beta-components/data-grid/passport.json +1051 -0
  40. package/source/beta-components/data-grid/passport.manual.json +255 -0
  41. package/source/beta-components/data-grid/react/AskGrid.tsx +164 -0
  42. package/source/beta-components/data-grid/react/DataGrid.tsx +39 -0
  43. package/source/beta-components/data-grid/styles.css +874 -716
  44. package/source/beta-components/date-picker/passport.json +407 -0
  45. package/source/beta-components/date-picker/styles.css +445 -446
  46. package/source/beta-components/dialog/passport.json +344 -0
  47. package/source/beta-components/dialog/styles.css +280 -279
  48. package/source/beta-components/file-uploader/passport.json +518 -0
  49. package/source/beta-components/file-uploader/styles.css +394 -396
  50. package/source/beta-components/input/passport.json +536 -0
  51. package/source/beta-components/input/styles.css +295 -297
  52. package/source/beta-components/menu/passport.json +322 -0
  53. package/source/beta-components/menu/styles.css +224 -223
  54. package/source/beta-components/modal/passport.json +289 -0
  55. package/source/beta-components/modal/styles.css +241 -240
  56. package/source/beta-components/number-input/passport.json +541 -0
  57. package/source/beta-components/number-input/styles.css +230 -231
  58. package/source/beta-components/popover/passport.json +238 -0
  59. package/source/beta-components/popover/styles.css +148 -147
  60. package/source/beta-components/progress/passport.json +270 -0
  61. package/source/beta-components/progress/styles.css +200 -201
  62. package/source/beta-components/radio-group/passport.json +477 -0
  63. package/source/beta-components/radio-group/styles.css +269 -270
  64. package/source/beta-components/shared/core/agent/adapter.ts +65 -0
  65. package/source/beta-components/shared/core/agent/history.ts +120 -0
  66. package/source/beta-components/shared/core/agent/index.ts +46 -0
  67. package/source/beta-components/shared/core/agent/numbers.ts +217 -0
  68. package/source/beta-components/shared/core/agent/schema.ts +180 -0
  69. package/source/beta-components/shared/core/agent/types.ts +169 -0
  70. package/source/beta-components/shared/core/agent/webmcp.ts +328 -0
  71. package/source/beta-components/shared/index.ts +9 -0
  72. package/source/beta-components/shared/react/GramproAIProvider.tsx +50 -0
  73. package/source/beta-components/shared/react/useAskAgent.ts +217 -0
  74. package/source/beta-components/shared/styles.css +79 -0
  75. package/source/beta-components/shared/version.json +4 -4
  76. package/source/beta-components/shared/version.ts +6 -6
  77. package/source/beta-components/skeleton/passport.json +251 -0
  78. package/source/beta-components/skeleton/styles.css +185 -187
  79. package/source/beta-components/spinner/passport.json +245 -0
  80. package/source/beta-components/spinner/styles.css +173 -174
  81. package/source/beta-components/switch/passport.json +421 -0
  82. package/source/beta-components/switch/styles.css +227 -229
  83. package/source/beta-components/tabs/passport.json +315 -0
  84. package/source/beta-components/tabs/styles.css +263 -264
  85. package/source/beta-components/textarea/passport.json +382 -0
  86. package/source/beta-components/textarea/styles.css +158 -160
  87. package/source/beta-components/toaster/passport.json +221 -0
  88. package/source/beta-components/toaster/styles.css +282 -282
  89. package/source/beta-components/tooltip/passport.json +170 -0
  90. package/source/beta-components/tooltip/styles.css +71 -73
  91. package/tools/env.cjs +61 -0
  92. package/tools/passport/cli.cjs +79 -0
  93. package/tools/passport/extract.cjs +493 -0
  94. package/tools/passport/index.cjs +185 -0
  95. package/tools/passport/merge.cjs +131 -0
  96. package/tools/passport/policy.cjs +65 -0
  97. package/tools/passport/validate.cjs +277 -0
  98. package/tools/ts-require.cjs +79 -0
  99. package/source/beta-components/accordion/__tests__/core.test.ts +0 -58
  100. package/source/beta-components/alert/__tests__/core.test.ts +0 -17
  101. package/source/beta-components/avatar/__tests__/core.test.ts +0 -88
  102. package/source/beta-components/badge/__tests__/core.test.ts +0 -46
  103. package/source/beta-components/breadcrumb/__tests__/core.test.ts +0 -58
  104. package/source/beta-components/button/__tests__/core.test.ts +0 -31
  105. package/source/beta-components/card/__tests__/core.test.ts +0 -57
  106. package/source/beta-components/checkbox/__tests__/core.test.ts +0 -40
  107. package/source/beta-components/combobox/__tests__/core.test.ts +0 -134
  108. package/source/beta-components/data-grid/__tests__/core.test.ts +0 -356
  109. package/source/beta-components/data-grid/__tests__/export.test.ts +0 -70
  110. package/source/beta-components/data-grid/__tests__/pdf.test.ts +0 -209
  111. package/source/beta-components/date-picker/__tests__/core.test.ts +0 -273
  112. package/source/beta-components/dialog/__tests__/core.test.ts +0 -86
  113. package/source/beta-components/file-uploader/__tests__/core.test.ts +0 -395
  114. package/source/beta-components/input/__tests__/core.test.ts +0 -75
  115. package/source/beta-components/menu/__tests__/core.test.ts +0 -120
  116. package/source/beta-components/modal/__tests__/core.test.ts +0 -55
  117. package/source/beta-components/number-input/__tests__/core.test.ts +0 -151
  118. package/source/beta-components/progress/__tests__/core.test.ts +0 -56
  119. package/source/beta-components/radio-group/__tests__/core.test.ts +0 -64
  120. package/source/beta-components/shared/__tests__/boundaries.test.ts +0 -95
  121. package/source/beta-components/shared/__tests__/core.test.ts +0 -55
  122. package/source/beta-components/shared/__tests__/position.test.ts +0 -143
  123. package/source/beta-components/skeleton/__tests__/core.test.ts +0 -41
  124. package/source/beta-components/spinner/__tests__/core.test.ts +0 -48
  125. package/source/beta-components/switch/__tests__/core.test.ts +0 -64
  126. package/source/beta-components/tabs/__tests__/core.test.ts +0 -51
  127. package/source/beta-components/textarea/__tests__/core.test.ts +0 -38
  128. package/source/beta-components/toaster/__tests__/core.test.ts +0 -256
  129. package/source/beta-components/tooltip/__tests__/core.test.ts +0 -42
@@ -1,174 +1,173 @@
1
- /*
2
- * Spinner styles.
3
- *
4
- * The indicator draws in `currentColor`, so it takes the color of its
5
- * surroundings. Tokens read the shared --gbs-* variables when they are set on
6
- * an ancestor. Rules live in the `gbs` layer. Declare where that sits in your
7
- * global CSS — e.g. `@layer reset, gbs, app, utilities;` — and anything in a
8
- * later layer, Tailwind utilities included, overrides them.
9
- */
10
-
11
- @layer gbs {
12
- .sp-root,
13
- .sp-container {
14
- --sp-size: 24px;
15
- --sp-color: currentColor;
16
- --sp-track: color-mix(in oklab, currentColor 18%, transparent);
17
- --sp-duration: 0.8s;
18
- --sp-overlay-bg: color-mix(in oklab, var(--gbs-bg, var(--dg-bg, light-dark(#ffffff, #0b0b0e))) 72%, transparent);
19
- --sp-overlay-color: var(--gbs-accent, var(--dg-accent, light-dark(#2563eb, #60a5fa)));
20
- --sp-font-size: var(--gbs-font-size, var(--dg-font-size, 13px));
21
-
22
- color-scheme: inherit;
23
- }
24
-
25
- :where(.dark, [data-theme="dark"]) .sp-root {
26
- color-scheme: dark;
27
- }
28
- :where(.light, [data-theme="light"]) .sp-root {
29
- color-scheme: light;
30
- }
31
-
32
- :where(.sp-root, .sp-container) *,
33
- :where(.sp-root, .sp-container) *::before,
34
- :where(.sp-root, .sp-container) *::after {
35
- box-sizing: border-box;
36
- }
37
-
38
- .sp-root {
39
- display: inline-flex;
40
- align-items: center;
41
- vertical-align: middle;
42
- color: var(--sp-color);
43
- font-size: var(--sp-font-size);
44
- }
45
-
46
- .sp-status {
47
- display: inline-flex;
48
- align-items: center;
49
- gap: 8px;
50
- }
51
- .sp-label {
52
- line-height: 1.4;
53
- }
54
-
55
- .sp-indicator {
56
- display: inline-grid;
57
- flex: none;
58
- place-items: center;
59
- width: var(--sp-size);
60
- height: var(--sp-size);
61
- }
62
-
63
- /* ---------------------------------------------------------------- ring */
64
-
65
- .sp-ring {
66
- width: 100%;
67
- height: 100%;
68
- animation: sp-rotate var(--sp-duration) linear infinite;
69
- }
70
- .sp-track,
71
- .sp-arc {
72
- fill: none;
73
- stroke-width: 2.5;
74
- }
75
- .sp-track {
76
- stroke: var(--sp-track);
77
- }
78
- .sp-arc {
79
- stroke: currentColor;
80
- stroke-linecap: round;
81
- stroke-dasharray: 28 100;
82
- }
83
- @keyframes sp-rotate {
84
- to {
85
- transform: rotate(360deg);
86
- }
87
- }
88
-
89
- /* ---------------------------------------------------------------- dots */
90
-
91
- .sp-indicator[data-variant="dots"] {
92
- grid-auto-flow: column;
93
- gap: calc(var(--sp-size) * 0.1);
94
- }
95
- .sp-dot {
96
- width: calc(var(--sp-size) * 0.22);
97
- aspect-ratio: 1;
98
- border-radius: 50%;
99
- background: currentColor;
100
- animation: sp-pulse calc(var(--sp-duration) * 1.4) ease-in-out infinite;
101
- }
102
- .sp-dot:nth-child(2) {
103
- animation-delay: calc(var(--sp-duration) * 0.18);
104
- }
105
- .sp-dot:nth-child(3) {
106
- animation-delay: calc(var(--sp-duration) * 0.36);
107
- }
108
- @keyframes sp-pulse {
109
- 0%,
110
- 80%,
111
- 100% {
112
- opacity: 0.25;
113
- scale: 0.7;
114
- }
115
- 40% {
116
- opacity: 1;
117
- scale: 1;
118
- }
119
- }
120
-
121
- /* ----------------------------------------------------------- container */
122
-
123
- .sp-container {
124
- position: relative;
125
- }
126
- .sp-overlay {
127
- position: absolute;
128
- inset: 0;
129
- z-index: 1;
130
- display: grid;
131
- place-items: center;
132
- border-radius: inherit;
133
- background: var(--sp-overlay-bg);
134
- color: var(--sp-overlay-color);
135
- font-size: var(--sp-font-size);
136
- animation: sp-fade 150ms ease both;
137
- }
138
- @keyframes sp-fade {
139
- from {
140
- opacity: 0;
141
- }
142
- }
143
-
144
- .sp-sr-only {
145
- position: absolute;
146
- width: 1px;
147
- height: 1px;
148
- margin: -1px;
149
- padding: 0;
150
- overflow: hidden;
151
- clip-path: inset(50%);
152
- white-space: nowrap;
153
- border: 0;
154
- }
155
-
156
- /* Slower, not stopped: a frozen spinner reads as a hang. */
157
- @media (prefers-reduced-motion: reduce) {
158
- .sp-root,
159
- .sp-container {
160
- --sp-duration: 2.4s;
161
- }
162
- .sp-overlay {
163
- animation: none;
164
- }
165
- }
166
-
167
- @media (forced-colors: active) {
168
- .sp-arc,
169
- .sp-dot {
170
- stroke: CanvasText;
171
- background: CanvasText;
172
- }
173
- }
174
- }
1
+ /*
2
+ * Spinner styles.
3
+ *
4
+ * The indicator draws in `currentColor`, so it takes the color of its
5
+ * surroundings. Tokens read the shared --gbs-* variables when they are set on
6
+ * an ancestor. Rules are unlayered: they beat a framework reset on
7
+ * specificity, and lose to anything you pass through `className`. With
8
+ * Tailwind v4, import this file after the framework and inside its components
9
+ * layer - see the README.
10
+ */
11
+
12
+ .sp-root,
13
+ .sp-container {
14
+ --sp-size: 24px;
15
+ --sp-color: currentColor;
16
+ --sp-track: color-mix(in oklab, currentColor 18%, transparent);
17
+ --sp-duration: 0.8s;
18
+ --sp-overlay-bg: color-mix(in oklab, var(--gbs-bg, var(--dg-bg, light-dark(#ffffff, #0b0b0e))) 72%, transparent);
19
+ --sp-overlay-color: var(--gbs-accent, var(--dg-accent, light-dark(#2563eb, #60a5fa)));
20
+ --sp-font-size: var(--gbs-font-size, var(--dg-font-size, 13px));
21
+
22
+ color-scheme: inherit;
23
+ }
24
+
25
+ :where(.dark, [data-theme="dark"]) .sp-root {
26
+ color-scheme: dark;
27
+ }
28
+ :where(.light, [data-theme="light"]) .sp-root {
29
+ color-scheme: light;
30
+ }
31
+
32
+ :where(.sp-root, .sp-container) *,
33
+ :where(.sp-root, .sp-container) *::before,
34
+ :where(.sp-root, .sp-container) *::after {
35
+ box-sizing: border-box;
36
+ }
37
+
38
+ .sp-root {
39
+ display: inline-flex;
40
+ align-items: center;
41
+ vertical-align: middle;
42
+ color: var(--sp-color);
43
+ font-size: var(--sp-font-size);
44
+ }
45
+
46
+ .sp-status {
47
+ display: inline-flex;
48
+ align-items: center;
49
+ gap: 8px;
50
+ }
51
+ .sp-label {
52
+ line-height: 1.4;
53
+ }
54
+
55
+ .sp-indicator {
56
+ display: inline-grid;
57
+ flex: none;
58
+ place-items: center;
59
+ width: var(--sp-size);
60
+ height: var(--sp-size);
61
+ }
62
+
63
+ /* ---------------------------------------------------------------- ring */
64
+
65
+ .sp-ring {
66
+ width: 100%;
67
+ height: 100%;
68
+ animation: sp-rotate var(--sp-duration) linear infinite;
69
+ }
70
+ .sp-track,
71
+ .sp-arc {
72
+ fill: none;
73
+ stroke-width: 2.5;
74
+ }
75
+ .sp-track {
76
+ stroke: var(--sp-track);
77
+ }
78
+ .sp-arc {
79
+ stroke: currentColor;
80
+ stroke-linecap: round;
81
+ stroke-dasharray: 28 100;
82
+ }
83
+ @keyframes sp-rotate {
84
+ to {
85
+ transform: rotate(360deg);
86
+ }
87
+ }
88
+
89
+ /* ---------------------------------------------------------------- dots */
90
+
91
+ .sp-indicator[data-variant="dots"] {
92
+ grid-auto-flow: column;
93
+ gap: calc(var(--sp-size) * 0.1);
94
+ }
95
+ .sp-dot {
96
+ width: calc(var(--sp-size) * 0.22);
97
+ aspect-ratio: 1;
98
+ border-radius: 50%;
99
+ background: currentColor;
100
+ animation: sp-pulse calc(var(--sp-duration) * 1.4) ease-in-out infinite;
101
+ }
102
+ .sp-dot:nth-child(2) {
103
+ animation-delay: calc(var(--sp-duration) * 0.18);
104
+ }
105
+ .sp-dot:nth-child(3) {
106
+ animation-delay: calc(var(--sp-duration) * 0.36);
107
+ }
108
+ @keyframes sp-pulse {
109
+ 0%,
110
+ 80%,
111
+ 100% {
112
+ opacity: 0.25;
113
+ scale: 0.7;
114
+ }
115
+ 40% {
116
+ opacity: 1;
117
+ scale: 1;
118
+ }
119
+ }
120
+
121
+ /* ----------------------------------------------------------- container */
122
+
123
+ .sp-container {
124
+ position: relative;
125
+ }
126
+ .sp-overlay {
127
+ position: absolute;
128
+ inset: 0;
129
+ z-index: 1;
130
+ display: grid;
131
+ place-items: center;
132
+ border-radius: inherit;
133
+ background: var(--sp-overlay-bg);
134
+ color: var(--sp-overlay-color);
135
+ font-size: var(--sp-font-size);
136
+ animation: sp-fade 150ms ease both;
137
+ }
138
+ @keyframes sp-fade {
139
+ from {
140
+ opacity: 0;
141
+ }
142
+ }
143
+
144
+ .sp-sr-only {
145
+ position: absolute;
146
+ width: 1px;
147
+ height: 1px;
148
+ margin: -1px;
149
+ padding: 0;
150
+ overflow: hidden;
151
+ clip-path: inset(50%);
152
+ white-space: nowrap;
153
+ border: 0;
154
+ }
155
+
156
+ /* Slower, not stopped: a frozen spinner reads as a hang. */
157
+ @media (prefers-reduced-motion: reduce) {
158
+ .sp-root,
159
+ .sp-container {
160
+ --sp-duration: 2.4s;
161
+ }
162
+ .sp-overlay {
163
+ animation: none;
164
+ }
165
+ }
166
+
167
+ @media (forced-colors: active) {
168
+ .sp-arc,
169
+ .sp-dot {
170
+ stroke: CanvasText;
171
+ background: CanvasText;
172
+ }
173
+ }