@starci/grammar 0.9.14 → 0.11.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 (62) hide show
  1. package/README.md +48 -8
  2. package/dist/.build-stamp.json +4 -4
  3. package/dist/common/components-forms.css +45 -0
  4. package/dist/common/components-navigation.css +185 -0
  5. package/dist/common/components-overlays.css +25 -92
  6. package/dist/common/registry.d.ts +8 -3
  7. package/dist/common/registry.d.ts.map +1 -1
  8. package/dist/common/renderers-forms.d.ts +2 -2
  9. package/dist/common/renderers-forms.d.ts.map +1 -1
  10. package/dist/common/renderers-forms.js.map +1 -1
  11. package/dist/common/renderers-navigation.d.ts +14 -4
  12. package/dist/common/renderers-navigation.d.ts.map +1 -1
  13. package/dist/common/renderers-navigation.js +12 -2
  14. package/dist/common/renderers-navigation.js.map +1 -1
  15. package/dist/core/branch/DataTable/index.d.ts +14 -2
  16. package/dist/core/branch/DataTable/index.d.ts.map +1 -1
  17. package/dist/core/branch/DataTable/index.js +47 -3
  18. package/dist/core/branch/DataTable/index.js.map +1 -1
  19. package/dist/core/branch/DragItem/index.d.ts +16 -0
  20. package/dist/core/branch/DragItem/index.d.ts.map +1 -0
  21. package/dist/core/branch/DragItem/index.js +5 -0
  22. package/dist/core/branch/DragItem/index.js.map +1 -0
  23. package/dist/core/branch/DropdownMenu/index.d.ts.map +1 -1
  24. package/dist/core/branch/DropdownMenu/index.js +8 -7
  25. package/dist/core/branch/DropdownMenu/index.js.map +1 -1
  26. package/dist/core/composite/AvatarButton/index.d.ts +20 -0
  27. package/dist/core/composite/AvatarButton/index.d.ts.map +1 -0
  28. package/dist/core/composite/AvatarButton/index.js +11 -0
  29. package/dist/core/composite/AvatarButton/index.js.map +1 -0
  30. package/dist/core/composite/IdentityLockup/index.d.ts +20 -0
  31. package/dist/core/composite/IdentityLockup/index.d.ts.map +1 -0
  32. package/dist/core/composite/IdentityLockup/index.js +11 -0
  33. package/dist/core/composite/IdentityLockup/index.js.map +1 -0
  34. package/dist/core/primitive/Avatar/index.d.ts +7 -1
  35. package/dist/core/primitive/Avatar/index.d.ts.map +1 -1
  36. package/dist/core/primitive/Avatar/index.js +1 -1
  37. package/dist/core/primitive/Avatar/index.js.map +1 -1
  38. package/dist/core/primitive/Button/index.d.ts +3 -0
  39. package/dist/core/primitive/Button/index.d.ts.map +1 -1
  40. package/dist/core/primitive/Button/index.js +1 -1
  41. package/dist/core/primitive/Button/index.js.map +1 -1
  42. package/dist/core/primitive/Field/index.d.ts +3 -1
  43. package/dist/core/primitive/Field/index.d.ts.map +1 -1
  44. package/dist/core/primitive/Field/index.js +2 -2
  45. package/dist/core/primitive/Field/index.js.map +1 -1
  46. package/dist/core/primitive/Kbd/index.d.ts +2 -0
  47. package/dist/core/primitive/Kbd/index.d.ts.map +1 -1
  48. package/dist/core/primitive/Kbd/index.js +5 -3
  49. package/dist/core/primitive/Kbd/index.js.map +1 -1
  50. package/dist/core/primitive/PlainPressable/index.d.ts +21 -0
  51. package/dist/core/primitive/PlainPressable/index.d.ts.map +1 -0
  52. package/dist/core/primitive/PlainPressable/index.js +16 -0
  53. package/dist/core/primitive/PlainPressable/index.js.map +1 -0
  54. package/dist/core/primitive/Switch/index.d.ts +12 -1
  55. package/dist/core/primitive/Switch/index.d.ts.map +1 -1
  56. package/dist/core/primitive/Switch/index.js +2 -1
  57. package/dist/core/primitive/Switch/index.js.map +1 -1
  58. package/dist/core/primitive/Video/index.d.ts +23 -0
  59. package/dist/core/primitive/Video/index.d.ts.map +1 -0
  60. package/dist/core/primitive/Video/index.js +5 -0
  61. package/dist/core/primitive/Video/index.js.map +1 -0
  62. package/package.json +1 -1
package/README.md CHANGED
@@ -6,7 +6,7 @@ states and scales, and the family registry. Core, Heritage and Offset Pop are si
6
6
  Each one implements the same contract with its own scoped visual DNA. The package contains no
7
7
  routes, domain entities, product decisions or feature-named shells.
8
8
 
9
- Common ships **95 renderers**. Every family renders all of them. A family changes presentation
9
+ Common publishes its renderers through `COMMON_GRAMMAR_COMPONENTS`. Every family renders all of them. A family changes presentation
10
10
  only: props, DOM, ARIA and keyboard behaviour stay the same.
11
11
 
12
12
  ## Install
@@ -140,9 +140,9 @@ Each group below matches a Storybook group. Run `npm run storybook`: every story
140
140
  the family and theme chosen in the toolbar. It shows the default, disabled, invalid, pending and
141
141
  selected/current states where they apply. Overlay stories open by default.
142
142
 
143
- **Primitives (25).** Avatar, Badge, Button, CloseButton, Divider, GrammarRoot, Heading, Icon,
144
- IconButton, IconTile, Image, IncludedMark, Kbd, Label, LeadingNumber, Link, Meter, Progress,
145
- ProgressCircle, RankArtwork, Skeleton, Spinner, StateMark, Text, TextAction.
143
+ **Primitives (26).** Avatar, Badge, Button, CloseButton, Divider, GrammarRoot, Heading, Icon,
144
+ IconButton, IconTile, Image, IncludedMark, Kbd, Label, LeadingNumber, Link, Meter, PlainPressable,
145
+ Progress, ProgressCircle, RankArtwork, Skeleton, Spinner, StateMark, Text, TextAction.
146
146
 
147
147
  **Forms (24).** ButtonGroup, Checkbox, CheckboxGroup, ComboBox, DateField, DatePicker,
148
148
  DateRangePicker, Field, Fieldset, FileDropzone, Form, Input, NumberField, OtpInput,
@@ -158,6 +158,47 @@ Tooltip. Dialog, AlertDialog, Drawer, Popover and DropdownMenu are controlled th
158
158
  **Navigation & Data (14).** Accordion, AvatarGroup, Breadcrumbs, Calendar, DataTable,
159
159
  DescriptionList, Disclosure, ListBox, Pagination, Stepper, Subnav, Tabs, TagGroup, Timeline.
160
160
 
161
+ `DataTable.getCellInteraction(row, columnId)` optionally supplies `onAction`, `onDragOver`,
162
+ `onDragLeave`, `onDrop`, `isHighlighted` and `tone` (`neutral` or `muted`). Cells remain semantic
163
+ table cells under the existing arrow-key navigation. An actionable cell takes focus itself,
164
+ activates once with Enter/Space or a click on its plain content, and leaves nested controls to
165
+ their own actions. Native drag callbacks receive the actual inner content-frame event (`HTMLDivElement`); the caller owns
166
+ payload validation, accepted targets and effects. Highlighting takes precedence over muted tone.
167
+
168
+ `DragItem` is a native drag-source frame with `isDisabled`, `onDragStart`, `onDragEnd`,
169
+ `isSelected`, `isInvalid`, `isDashed` and an optional caller-owned `leadingColor`. Its `children`
170
+ must include a published control providing the operation without dragging, including selection
171
+ and a keyboard-reachable destination when used with cell actions. Selection, invalidity and the
172
+ category must also be expressed in accessible content. The frame itself adds no focus stop.
173
+
174
+ Command `Button` accepts controlled boolean `aria-pressed` for a toggle action and forwards both
175
+ `true` and `false` to its native button. Omit it for an ordinary command and keep a toggle's visible
176
+ label stable as its state changes, following the [ARIA button pattern](https://www.w3.org/WAI/ARIA/apg/patterns/button/).
177
+
178
+ `Video` takes `src`, accessible `title`, optional `poster`, and an optional nullable `captions` descriptor
179
+ (`src`, human-readable `label`, optional BCP 47 `srcLang` when the actual language is known). It keeps
180
+ native controls, inline playback and metadata preloading, with one default captions track when supplied.
181
+ Supply a genuine WebVTT resource timed to
182
+ the rendered media, including relevant non-speech audio; empty tracks and guessed timing do not
183
+ satisfy this contract. Null or omission exposes no track and does not claim accessible caption coverage;
184
+ the caller owns caption creation, availability and an appropriate alternative for legacy media. Wrap it in `MediaFrame`
185
+ to reserve an aspect ratio. The track URL must be same-origin unless the caller supplies
186
+ `crossOrigin` (`anonymous` or `use-credentials`) and both resource servers support the corresponding
187
+ CORS request; the renderer leaves this unset by default to preserve ordinary media loading.
188
+ The [HTML media and track standard](https://html.spec.whatwg.org/multipage/media.html#the-track-element)
189
+ defines the native loading and caption behaviour (reviewed 2026-10-18).
190
+
191
+ `Switch` takes `size="md" | "lg"` (`lg` is the StarCi 4rem by 2.25rem pill with a 1.75rem round thumb) and
192
+ `thumbIcon` / `selectedThumbIcon` for a glyph inside the thumb, so a sun/moon theme switch is
193
+ `<Switch size="lg" label="Dark mode" thumbIcon={Sun} selectedThumbIcon={Moon} />`.
194
+
195
+ `PlainPressable` is a pressable that does not look like a button: no padding, background, border or
196
+ shape in any state, no hover effect, a zoom-out on press, a focus ring, and no zoom under
197
+ `prefers-reduced-motion`. `AvatarButton` is a circle-only avatar built on it (an account-menu
198
+ trigger) and `IdentityLockup` a mark beside a title and a muted subtitle with no caret (a workspace
199
+ switcher trigger). All three work as the `trigger` of `DropdownMenu` and `Popover`. `IdentityLockup`'s mark is a transparent, uncropped square by default (`markShape="rounded"` opts in to a
200
+ corner) and `Avatar` takes `shape="square" | "rounded"`.
201
+
161
202
  **Surfaces (14).** EmptyNotice, FencedCodeBlock, HorizontalScrollRegion, MarkdownArticle,
162
203
  MarkdownTableFrame, MediaFrame, Rail, SectionHeader, StaticStateRow, SurfaceAccordionCard,
163
204
  SurfaceCard, SurfaceCopyGroup, SurfaceListCard, VerticalScrollRegion.
@@ -167,7 +208,7 @@ PrimaryRailLayout, Sidebar, TopBar, WorkspaceShell. Storybook also pins three pa
167
208
  each family: a settings form, a data list with a filter drawer and pagination, and a mobile home
168
209
  with TopBar, BottomNav and a Toast.
169
210
 
170
- `COMMON_GRAMMAR_COMPONENTS` is the frozen registry of all 95 renderers.
211
+ `COMMON_GRAMMAR_COMPONENTS` is the frozen registry of the published renderers.
171
212
  `COMMON_FORMS_COMPONENTS`, `COMMON_OVERLAYS_COMPONENTS` and `COMMON_NAVIGATION_COMPONENTS` are the
172
213
  0.5.0 groups. `defineGrammarFamily` builds a new family over the registry. It may replace
173
214
  renderers with prop-compatible versions and add extensions whose names don't collide with Common's.
@@ -213,9 +254,8 @@ renderers with prop-compatible versions and add extensions whose names don't col
213
254
 
214
255
  ```sh
215
256
  npm run typecheck
216
- npm test # build + node --test + vitest spec list
217
- npm run build-storybook # static Storybook (all 95 renderers + family pages)
218
- npx vitest run --project storybook # stories in Chromium with axe (a11y `todo` mode)
257
+ npm test # typecheck + build; the package has no spec suites
258
+ npm run build-storybook # static Storybook for the authored component and family stories
219
259
  npm pack --dry-run
220
260
  ```
221
261
 
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "schema": "starci/grammar-build-stamp@1",
3
3
  "package": "@starci/grammar",
4
- "version": "0.9.14",
4
+ "version": "0.11.0",
5
5
  "algorithm": "starci/grammar-source-digest@1",
6
- "sourceDigest": "sha256:98d511367ac1024c0a1e0f84421c01ec88c789856d1363f5df15654e9995523b",
7
- "distDigest": "sha256:e15143a55457cc430323229d27806df022dc3a93a972c4ffb6b6e24331c6837d",
8
- "builtAt": "2026-10-13T10:07:57.785Z"
6
+ "sourceDigest": "sha256:9cb2cc563d7e0a1acdcc56a70dbc7c9944be34777c34cb8c6fcb1b5a247aba66",
7
+ "distDigest": "sha256:5a334f07de9b640740b93c311007b8bdcaec035154a457f2cd3721e4386ed919",
8
+ "builtAt": "2026-10-25T07:24:32.396Z"
9
9
  }
@@ -160,6 +160,7 @@
160
160
  .starci-core-field-skeleton-control[data-grammar-field-skeleton="choice"] > .starci-core-skeleton { border-radius: 0.25rem; }
161
161
  .starci-core-field-skeleton-control[data-grammar-field-skeleton="switch"] { flex: none; block-size: 1.25rem; inline-size: 2rem; }
162
162
  .starci-core-field-skeleton-control[data-grammar-field-skeleton="switch"] > .starci-core-skeleton { border-radius: 999px; }
163
+ .starci-core-field-skeleton-control[data-grammar-field-skeleton="switch"][data-grammar-switch-size="lg"] { block-size: 2.25rem; inline-size: 4rem; }
163
164
 
164
165
  .starci-core-field-skeleton-choice-label {
165
166
  color: var(--foreground, CanvasText);
@@ -354,6 +355,50 @@
354
355
  gap: 0.75rem 1rem;
355
356
  }
356
357
 
358
+ /*
359
+ * --- Switch size "lg": the StarCi look ---
360
+ * A 4rem by 2.25rem fully round track, a 1.75rem round thumb inset 0.25rem, an optional glyph centred in the thumb.
361
+ * Keyed on the stamps the component emits (`data-grammar-switch-size`, `data-grammar-switch-thumb`, `data-grammar-switch-icon`),
362
+ * never on vendor class names. The geometry is `!important` because consumers import this sheet on either side of
363
+ * `@heroui/styles`, so layer rank cannot decide against the vendor `.switch--*` size rules. The on position is a margin
364
+ * (as HeroUI's own thumb), the percentage resolving against the track: 100% - thumb - inset.
365
+ */
366
+ [data-component="Switch"][data-grammar-switch-size="lg"] [data-grammar-choice-control="switch"] {
367
+ block-size: 2.25rem !important;
368
+ inline-size: 4rem !important;
369
+ border-radius: 9999px !important;
370
+ }
371
+
372
+ [data-component="Switch"][data-grammar-switch-size="lg"] [data-grammar-switch-thumb] {
373
+ block-size: 1.75rem !important;
374
+ inline-size: 1.75rem !important;
375
+ border-radius: 9999px !important;
376
+ margin-inline-start: 0.25rem !important;
377
+ align-items: center;
378
+ justify-content: center;
379
+ }
380
+
381
+ [data-component="Switch"][data-grammar-switch-size="lg"]:is([data-selected="true"], [aria-checked="true"]) [data-grammar-switch-thumb] {
382
+ margin-inline-start: calc(100% - 1.75rem - 0.25rem) !important;
383
+ }
384
+
385
+ /* The description and error align under the label, past the wider track. */
386
+ [data-component="Switch"][data-grammar-switch-size="lg"] > [data-slot="description"],
387
+ [data-component="Switch"][data-grammar-switch-size="lg"] > [data-slot="field-error"] {
388
+ padding-inline-start: calc(4rem + 0.75rem);
389
+ }
390
+
391
+ .starci-core-switch-icon {
392
+ display: inline-flex;
393
+ align-items: center;
394
+ justify-content: center;
395
+ }
396
+
397
+ /* A swapping pair shows the glyph of the current state only; a single glyph always shows. */
398
+ [data-component="Switch"][data-grammar-switch-icons="swap"] [data-grammar-switch-icon="on"] { display: none; }
399
+ [data-component="Switch"][data-grammar-switch-icons="swap"]:is([data-selected="true"], [aria-checked="true"]) [data-grammar-switch-icon="on"] { display: inline-flex; }
400
+ [data-component="Switch"][data-grammar-switch-icons="swap"]:is([data-selected="true"], [aria-checked="true"]) [data-grammar-switch-icon="off"] { display: none; }
401
+
357
402
  /* --- Slider --- */
358
403
  .starci-core-slider {
359
404
  width: 100%;
@@ -659,6 +659,136 @@
659
659
  box-shadow: 0 0 0 2px var(--background, Canvas), 0 0 0 4px var(--accent, Highlight);
660
660
  }
661
661
 
662
+ /*
663
+ * A square brand mark (Avatar shape="square"): a transparent box with no corner and no clipping; the image is contained, so a round,
664
+ * square or wide logo shows whole in its own shape. The monogram fallback keeps its tint (see the lockup) so initials stay legible.
665
+ */
666
+ .starci-core-avatar[data-grammar-avatar-shape="square"] {
667
+ overflow: visible !important;
668
+ border-radius: 0 !important;
669
+ background: transparent !important;
670
+ }
671
+
672
+ .starci-core-avatar[data-grammar-avatar-shape="square"] > * {
673
+ border-radius: 0 !important;
674
+ background-color: transparent;
675
+ }
676
+
677
+ .starci-core-avatar[data-grammar-avatar-shape="square"] img {
678
+ inline-size: 100% !important;
679
+ block-size: 100% !important;
680
+ object-fit: contain !important;
681
+ }
682
+
683
+ /* A rounded brand or workspace mark (Avatar shape="rounded", an explicit opt-in): the image and the initials share the corner. */
684
+ .starci-core-avatar[data-grammar-avatar-shape="rounded"] {
685
+ border-radius: 0.75rem !important;
686
+ }
687
+
688
+ .starci-core-avatar[data-grammar-avatar-shape="rounded"] > * {
689
+ border-radius: inherit !important;
690
+ }
691
+
692
+ /*
693
+ * --- PlainPressable: a pressable that does not look like a button ---
694
+ * No padding, background, border or button shape in any state; NO hover effect; the only feedback is a zoom-out on
695
+ * press, on the canon motion tokens; a keyboard focus ring; reduced motion removes the zoom and the transition, never
696
+ * the control. The vendor button's size, padding, corner and colour tokens are reset with `!important` because
697
+ * consumers import this sheet on either side of `@heroui/styles`, so layer rank cannot decide against `.button`.
698
+ */
699
+ [data-component="PlainPressable"] {
700
+ block-size: auto !important;
701
+ min-block-size: 0 !important;
702
+ inline-size: auto !important;
703
+ padding: 0 !important;
704
+ gap: 0 !important;
705
+ border: 0 !important;
706
+ border-radius: 0.75rem !important;
707
+ box-shadow: none !important;
708
+ background: transparent !important;
709
+ --button-bg: transparent;
710
+ --button-bg-hover: transparent;
711
+ --button-bg-pressed: transparent;
712
+ color: inherit !important;
713
+ font: inherit;
714
+ text-align: start;
715
+ transform: none;
716
+ transition: transform var(--starci-core-motion-duration, 180ms) var(--starci-core-motion-easing, cubic-bezier(0.2, 0, 0, 1)) !important;
717
+ }
718
+
719
+ [data-component="PlainPressable"][data-grammar-pressable-shape="circle"] {
720
+ border-radius: 9999px !important;
721
+ }
722
+
723
+ [data-component="PlainPressable"]:is(:hover, [data-hovered="true"]) {
724
+ background: transparent !important;
725
+ transform: none;
726
+ }
727
+
728
+ [data-component="PlainPressable"]:is(:active, [data-pressed="true"]):not(:disabled, [data-disabled="true"]) {
729
+ background: transparent !important;
730
+ transform: scale(0.96) !important;
731
+ }
732
+
733
+ [data-component="PlainPressable"]:is(:focus-visible, [data-focus-visible="true"]) {
734
+ outline: 2px solid var(--focus, var(--starci-core-focus, Highlight)) !important;
735
+ outline-offset: 2px;
736
+ }
737
+
738
+ [data-component="PlainPressable"]:is(:disabled, [data-disabled="true"]) {
739
+ opacity: 0.5;
740
+ cursor: default;
741
+ }
742
+
743
+ @media (prefers-reduced-motion: reduce) {
744
+ [data-component="PlainPressable"],
745
+ [data-component="PlainPressable"]:is(:active, [data-pressed="true"]):not(:disabled, [data-disabled="true"]) {
746
+ transform: none !important;
747
+ transition: none !important;
748
+ }
749
+ }
750
+
751
+ /* --- IdentityLockup: a mark beside two text lines, inside a PlainPressable --- */
752
+ .starci-core-identity-lockup {
753
+ display: inline-flex;
754
+ min-width: 0;
755
+ align-items: center;
756
+ gap: var(--grammar-row-gap, 0.75rem);
757
+ text-align: start;
758
+ }
759
+
760
+ .starci-core-identity-lockup-copy {
761
+ display: flex;
762
+ min-width: 0;
763
+ flex-direction: column;
764
+ }
765
+
766
+ .starci-core-identity-lockup-title {
767
+ overflow: hidden;
768
+ color: var(--foreground, CanvasText);
769
+ font-size: 0.875rem;
770
+ font-weight: 600;
771
+ line-height: 1.25rem;
772
+ text-overflow: ellipsis;
773
+ white-space: nowrap;
774
+ }
775
+
776
+ .starci-core-identity-lockup-subtitle {
777
+ overflow: hidden;
778
+ color: var(--muted, GrayText);
779
+ font-size: 0.75rem;
780
+ line-height: 1rem;
781
+ text-overflow: ellipsis;
782
+ white-space: nowrap;
783
+ }
784
+
785
+ /* A monogram sits on an accent tint. */
786
+ .starci-core-identity-lockup [data-grammar-avatar-fallback] {
787
+ background-color: var(--accent-soft, Canvas) !important;
788
+ color: var(--accent-soft-foreground, CanvasText);
789
+ font-weight: 600;
790
+ }
791
+
662
792
  .starci-core-avatar-group {
663
793
  min-width: 0;
664
794
  max-width: 100%;
@@ -769,6 +899,14 @@
769
899
  }
770
900
 
771
901
  /* ---------- DataTable ---------- */
902
+ .starci-core-video {
903
+ display: block;
904
+ width: 100%;
905
+ max-width: 100%;
906
+ height: auto;
907
+ object-fit: contain;
908
+ }
909
+
772
910
  .starci-core-data-table {
773
911
  min-width: 0;
774
912
  max-width: 100%;
@@ -841,6 +979,53 @@
841
979
  text-align: center;
842
980
  }
843
981
 
982
+ .starci-core-data-table-cell[data-grammar-cell-tone="muted"] {
983
+ background: var(--surface-secondary, Canvas);
984
+ }
985
+
986
+ .starci-core-data-table-cell[data-grammar-cell-highlighted="true"] {
987
+ background: var(--accent-soft, Highlight);
988
+ }
989
+
990
+ .starci-core-data-table-cell[data-grammar-cell-interaction="true"] {
991
+ height: 1px;
992
+ padding: 0;
993
+ }
994
+
995
+ .starci-core-data-table-cell-content {
996
+ box-sizing: border-box;
997
+ height: 100%;
998
+ padding: 0.75rem;
999
+ }
1000
+
1001
+ .starci-core-drag-item {
1002
+ display: flex;
1003
+ min-width: 0;
1004
+ width: 100%;
1005
+ flex-direction: column;
1006
+ gap: 0.25rem;
1007
+ border: 1px solid var(--separator, GrayText);
1008
+ border-inline-start: 4px solid var(--starci-drag-item-leading, var(--separator, GrayText));
1009
+ border-radius: var(--radius, 0.5rem);
1010
+ background: var(--surface, Canvas);
1011
+ padding: 0.25rem 0.5rem;
1012
+ }
1013
+
1014
+ .starci-core-drag-item[data-grammar-selected="true"] {
1015
+ outline: 2px solid var(--accent, Highlight);
1016
+ outline-offset: 1px;
1017
+ }
1018
+
1019
+ .starci-core-drag-item[data-grammar-invalid="true"] {
1020
+ border-color: var(--danger, Mark);
1021
+ border-inline-start-color: var(--starci-drag-item-leading, var(--danger, Mark));
1022
+ background: var(--danger-soft, Canvas);
1023
+ }
1024
+
1025
+ .starci-core-drag-item[data-grammar-dashed="true"] {
1026
+ border-style: dashed;
1027
+ }
1028
+
844
1029
  /* ---------- DescriptionList ---------- */
845
1030
  .starci-core-description-list {
846
1031
  display: flex;
@@ -345,8 +345,7 @@
345
345
  }
346
346
 
347
347
  /* ---------------------------------------------------------------- popover */
348
- .starci-core-popover,
349
- .starci-core-menu-popover {
348
+ .starci-core-popover {
350
349
  max-width: min(20rem, calc(100vw - 2rem));
351
350
  overflow: auto;
352
351
  border-radius: var(--starci-core-control-radius, 0.75rem);
@@ -356,8 +355,7 @@
356
355
  outline: none;
357
356
  }
358
357
 
359
- .starci-core-popover[data-entering],
360
- .starci-core-menu-popover[data-entering] {
358
+ .starci-core-popover[data-entering] {
361
359
  animation: starci-core-overlay-fade var(--starci-core-motion-duration, 180ms) var(--starci-core-motion-easing, cubic-bezier(0.2, 0, 0, 1));
362
360
  }
363
361
 
@@ -391,105 +389,41 @@
391
389
  }
392
390
 
393
391
  /* ---------------------------------------------------------------- dropdown menu */
394
- .starci-core-menu-popover {
395
- min-width: max(12rem, var(--trigger-width, 0px));
396
- }
397
-
398
- .starci-core-menu {
399
- display: flex;
400
- flex-direction: column;
401
- padding: 0.25rem;
402
- outline: none;
403
- }
404
-
405
- .starci-core-menu-section {
406
- display: flex;
407
- flex-direction: column;
408
- }
409
-
410
- :is(.starci-core-menu-section, .starci-core-menu-item) + .starci-core-menu-section,
411
- .starci-core-menu-section + .starci-core-menu-item {
412
- margin-block-start: 0.25rem;
413
- padding-block-start: 0.25rem;
414
- border-block-start: 1px solid var(--separator, GrayText);
415
- }
416
-
417
- .starci-core-menu-section-label {
418
- padding: 0.375rem 0.75rem 0.25rem;
392
+ /*
393
+ * DropdownMenu renders HeroUI's own Dropdown anatomy and default look: popover, menu, section header, item, label, description,
394
+ * keyboard slot and item indicator are all the vendor's (`.dropdown__*`, `.menu-item*`). Grammar adds only what the vendor look does
395
+ * not cover, each keyed on a stamp:
396
+ * - the icon colour. The vendor example colours the glyph with Tailwind utilities (`text-muted`, `text-danger`) that a consumer
397
+ * build which does not scan this package never generates, so the same two colours are stamped here.
398
+ * - the two layout wrappers of the description layout (icon aligned to the first line, label and description stacked), which the
399
+ * vendor example also builds from utilities.
400
+ * - the keyboard slot's inline-end push (the example's `ms-auto`).
401
+ */
402
+ [data-grammar-menu-item] .starci-core-icon {
403
+ flex: none;
419
404
  color: var(--muted, GrayText);
420
- font-size: 0.75rem;
421
- font-weight: 600;
422
- letter-spacing: 0.02em;
423
- }
424
-
425
- .starci-core-menu-item {
426
- display: flex;
427
- min-width: 0;
428
- min-block-size: var(--starci-core-control-min-size, 2.75rem);
429
- align-items: center;
430
- gap: var(--grammar-inline-gap, 0.5rem);
431
- padding: 0.5rem 0.75rem;
432
- border-radius: calc(var(--starci-core-control-radius, 0.75rem) - 0.25rem);
433
- color: var(--surface-foreground, CanvasText);
434
- cursor: pointer;
435
- font-size: 0.875rem;
436
- outline: none;
437
- text-decoration: none;
438
- }
439
-
440
- .starci-core-menu-item:is([data-focused], [data-hovered], [data-open]) {
441
- background: var(--surface-secondary, Canvas);
442
405
  }
443
406
 
444
- .starci-core-menu-item[data-focus-visible] {
445
- outline: 2px solid var(--focus, Highlight);
446
- outline-offset: -2px;
447
- }
448
-
449
- .starci-core-menu-item[data-disabled] {
450
- cursor: not-allowed;
451
- opacity: 0.5;
407
+ [data-grammar-menu-item][data-grammar-tone="negative"] .starci-core-icon {
408
+ color: var(--danger, CanvasText);
452
409
  }
453
410
 
454
- .starci-core-menu-item[data-grammar-tone="negative"] {
455
- color: var(--danger, CanvasText);
411
+ [data-grammar-menu-icon-slot] {
412
+ display: flex;
413
+ block-size: 2rem;
414
+ align-items: flex-start;
415
+ justify-content: center;
416
+ padding-block-start: 1px;
456
417
  }
457
418
 
458
- .starci-core-menu-item-copy {
419
+ [data-grammar-menu-copy] {
459
420
  display: flex;
460
421
  min-width: 0;
461
- flex: 1;
462
422
  flex-direction: column;
463
423
  }
464
424
 
465
- .starci-core-menu-item-label {
466
- overflow: hidden;
467
- text-overflow: ellipsis;
468
- white-space: nowrap;
469
- }
470
-
471
- .starci-core-menu-item-description {
472
- color: var(--muted, GrayText);
473
- font-size: 0.75rem;
474
- }
475
-
476
- .starci-core-menu-item-shortcut {
477
- flex: none;
425
+ [data-grammar-menu-shortcut] {
478
426
  margin-inline-start: auto;
479
- color: var(--muted, GrayText);
480
- }
481
-
482
- .starci-core-menu-indicator {
483
- display: inline-flex;
484
- flex: none;
485
- width: 1rem;
486
- color: var(--accent, Highlight);
487
- }
488
-
489
- .starci-core-menu-submenu-indicator {
490
- display: inline-flex;
491
- flex: none;
492
- color: var(--muted, GrayText);
493
427
  }
494
428
 
495
429
  /* ---------------------------------------------------------------- toaster + toast */
@@ -969,7 +903,6 @@
969
903
  .starci-core-dialog-container,
970
904
  .starci-core-drawer-content,
971
905
  .starci-core-popover,
972
- .starci-core-menu-popover,
973
906
  .starci-core-toast,
974
907
  .starci-core-skeleton,
975
908
  .starci-core-skeleton::before,
@@ -997,7 +930,7 @@
997
930
  border: 1px solid CanvasText;
998
931
  }
999
932
 
1000
- .starci-core-menu-item:is([data-focused], [data-hovered]) {
933
+ [data-grammar-menu-item]:is([data-focused], [data-hovered]) {
1001
934
  forced-color-adjust: none;
1002
935
  background: Highlight;
1003
936
  color: HighlightText;
@@ -9,25 +9,30 @@ type ExtensionWithoutCommonCollisions<Common extends GrammarRendererRegistry, Ex
9
9
  };
10
10
  export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
11
11
  readonly Accordion: ({ label, items, expandedIds, defaultExpandedIds, onExpandedChange, allowsMultipleExpanded, headingLevel, className, }: import("./renderers-navigation.js").AccordionProps) => import("react").JSX.Element;
12
- readonly Avatar: ({ name, src, fallback, size, isDecorative, isCurrent, className, isSkeleton }: import("./renderers-navigation.js").AvatarProps) => import("react").JSX.Element;
12
+ readonly Avatar: ({ name, src, fallback, size, shape, isDecorative, isCurrent, className, isSkeleton }: import("./renderers-navigation.js").AvatarProps) => import("react").JSX.Element;
13
+ readonly AvatarButton: ({ name, src, fallback, size, onPress, isDisabled }: import("./renderers-navigation.js").AvatarButtonProps) => import("react").JSX.Element;
13
14
  readonly AvatarGroup: ({ label, items, max, size, overflowLabel, className }: import("./renderers-navigation.js").AvatarGroupProps) => import("react").JSX.Element;
14
15
  readonly BottomNav: ({ label, items, currentId, onSelect, position, visibility, className }: import("./renderers-navigation.js").BottomNavProps) => import("react").JSX.Element;
15
16
  readonly Breadcrumbs: ({ label, items, separator, onAction, className }: import("./renderers-navigation.js").BreadcrumbsProps) => import("react").JSX.Element;
16
17
  readonly Calendar: ({ label, value, defaultValue, onChange, minValue, maxValue, isDateUnavailable, isDisabled, isReadOnly, previousLabel, nextLabel, className, }: import("./renderers-navigation.js").CalendarProps) => import("react").JSX.Element;
17
- readonly DataTable: <Row extends import("./renderers-navigation.js").DataTableRow>({ label, columns, rows, renderCell, sort, onSortChange, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, selectAllLabel, selectRowLabel, isLoading, loadingContent, loadingRows, emptyContent, stickyHeader, maxBlockSize, onRowAction, className, }: import("./renderers-navigation.js").DataTableProps<Row>) => import("react").JSX.Element;
18
+ readonly DataTable: <Row extends import("./renderers-navigation.js").DataTableRow>({ label, columns, rows, renderCell, getCellInteraction, sort, onSortChange, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, selectAllLabel, selectRowLabel, isLoading, loadingContent, loadingRows, emptyContent, stickyHeader, maxBlockSize, onRowAction, className, }: import("./renderers-navigation.js").DataTableProps<Row>) => import("react").JSX.Element;
18
19
  readonly DescriptionList: (props: import("./renderers-navigation.js").DescriptionListProps) => import("react").JSX.Element;
19
20
  readonly Disclosure: ({ title, children, summary, isExpanded, defaultExpanded, onExpandedChange, isDisabled, headingLevel, className, }: import("./renderers-navigation.js").DisclosureProps) => import("react").JSX.Element;
21
+ readonly DragItem: ({ children, isDisabled, onDragStart, onDragEnd, isSelected, isInvalid, isDashed, leadingColor }: import("./renderers-navigation.js").DragItemProps) => import("react").JSX.Element;
20
22
  readonly FlowGraph: ({ label, nodes, edges, selectedId, onSelect, height, isInteractive, showControls, layout, emptyLabel, isLoading, className, }: import("./renderers-navigation.js").FlowGraphProps) => import("react").JSX.Element;
21
23
  readonly Footer: ({ label, brand, groups, legal, externalHint, children, className }: import("./renderers-navigation.js").FooterProps) => import("react").JSX.Element;
24
+ readonly IdentityLockup: ({ title, subtitle, logoSrc, markShape, onPress, isDisabled }: import("./renderers-navigation.js").IdentityLockupProps) => import("react").JSX.Element;
22
25
  readonly Image: ({ src, alt, aspect, fit, fallback, loading, srcSet, sizes, width, height, onLoadStateChange, plate, className, ...assetSlot }: import("./renderers-navigation.js").ImageProps) => import("react").JSX.Element;
23
26
  readonly Link: ({ children, href, kind, isCurrent, visited, externalHint, externalIcon, isDisabled, onFollow, className, }: import("./renderers-navigation.js").LinkProps) => import("react").JSX.Element;
24
27
  readonly ListBox: ({ label, items, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, onAction, emptyContent, isLoading, loadingRows, className, }: import("./renderers-navigation.js").ListBoxProps) => import("react").JSX.Element;
25
28
  readonly Pagination: ({ label, page, pageCount, onPageChange, siblingCount, previousLabel, nextLabel, pageLabel, summary, className, }: import("./renderers-navigation.js").PaginationProps) => import("react").JSX.Element;
29
+ readonly PlainPressable: ({ children, "aria-label": ariaLabel, onPress, isDisabled, shape, className }: import("./renderers-navigation.js").PlainPressableProps) => import("react").JSX.Element;
26
30
  readonly Rating: ({ label, value, defaultValue, onChange, max, isReadOnly, isDisabled, valueLabel, icon, name, className, }: import("./renderers-navigation.js").RatingProps) => import("react").JSX.Element;
27
31
  readonly Stepper: ({ label, steps, currentStepId, orientation, onStepSelect, stateLabel, renderMarker, className, isLoading, }: import("./renderers-navigation.js").StepperProps) => import("react").JSX.Element;
28
32
  readonly TagGroup: ({ label, items, selectionMode, selectedIds, defaultSelectedIds, onSelectionChange, onRemove, removeLabel, emptyContent, size, className, }: import("./renderers-navigation.js").TagGroupProps) => import("react").JSX.Element;
29
33
  readonly Timeline: ({ label, items, className, isLoading, loadingRows }: import("./renderers-navigation.js").TimelineProps) => import("react").JSX.Element;
30
34
  readonly TopBar: ({ brand, navigation, actions, menu, position, className, ...headerProps }: import("./renderers-navigation.js").TopBarProps) => import("react").JSX.Element;
35
+ readonly Video: ({ src, title, poster, captions, crossOrigin, className }: import("./renderers-navigation.js").VideoProps) => import("react").JSX.Element;
31
36
  readonly Alert: (props: import("./renderers-overlays.js").AlertProps) => import("react").JSX.Element | null;
32
37
  readonly AlertDialog: ({ title, description, children, tone, confirmLabel, cancelLabel, onConfirm, onCancel, isConfirmPending, trigger, isKeyboardDismissDisabled, ...openState }: import("./renderers-overlays.js").AlertDialogProps) => import("react").JSX.Element;
33
38
  readonly CloseButton: ({ label, onPress, isDisabled, size }: import("./renderers-overlays.js").CloseButtonProps) => import("react").JSX.Element;
@@ -59,7 +64,7 @@ export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
59
64
  readonly SegmentedControl: ({ options, value, defaultValue, onValueChange, width, label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, isSkeleton, }: import("./renderers-forms.js").SegmentedControlProps) => import("react").JSX.Element;
60
65
  readonly Select: ({ options, placeholder, value, defaultValue, onValueChange, isPending, isSkeleton, variant, ...field }: import("./renderers-forms.js").SelectProps) => import("react").JSX.Element;
61
66
  readonly Slider: ({ value, defaultValue, onValueChange, onValueCommit, minValue, maxValue, step, formatOptions, thumbLabels, orientation, label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, }: import("./renderers-forms.js").SliderProps) => import("react").JSX.Element;
62
- readonly Switch: ({ value, isSelected, defaultSelected, onSelectedChange, isSkeleton, ...field }: import("./renderers-forms.js").SwitchProps) => import("react").JSX.Element;
67
+ readonly Switch: ({ value, isSelected, defaultSelected, onSelectedChange, size, thumbIcon, selectedThumbIcon, isSkeleton, ...field }: import("./renderers-forms.js").SwitchProps) => import("react").JSX.Element;
63
68
  readonly Textarea: ({ id, placeholder, value, defaultValue, rows, isSkeleton, maxLength, minLength, onValueChange, variant, onSubmitShortcut, mentions, onBlur, onPaste, autoFocus, ...field }: import("./renderers-forms.js").TextareaProps) => import("react").JSX.Element;
64
69
  readonly TimeField: ({ value, defaultValue, onValueChange, minValue, maxValue, granularity, hourCycle, variant, ...field }: import("./renderers-forms.js").TimeFieldProps) => import("react").JSX.Element;
65
70
  readonly Badge: ({ children, startContent, tone, isDot, isSkeleton }: import("./renderers.js").BadgeProps) => import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/common/registry.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEvE,MAAM,MAAM,wBAAwB,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,CAAA;AAClE,KAAK,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;AACpE,KAAK,sBAAsB,CAAC,MAAM,SAAS,uBAAuB,IAAI;IAClE,QAAQ,EAAE,IAAI,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CAC3F,CAAA;AACD,KAAK,gCAAgC,CAAC,MAAM,SAAS,uBAAuB,EAAE,UAAU,SAAS,uBAAuB,IACpH,UAAU,GAAG;IAAE,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,MAAM,CAAC,GAAG,KAAK;CAAE,CAAA;AAEtF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAA;AACX,MAAM,MAAM,0BAA0B,GAAG,MAAM,OAAO,yBAAyB,CAAA;AAE/E,MAAM,MAAM,mBAAmB,CAAC,QAAQ,SAAS,MAAM,IAAI;IACvD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,MAAM,aAAa,CAAA;IAC3D,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAA;CAC1F,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,QAAQ,SAAS,MAAM,EAAE,UAAU,SAAS,uBAAuB,IAAI;IACrG,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC9C,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,yBAAyB,GAAG,UAAU,CAAC,CAAA;IAC5E,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;QAAE,qBAAqB,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAA;CACrE,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,GAC5B,KAAK,CAAC,QAAQ,SAAS,MAAM,EAC7B,KAAK,CAAC,YAAY,SAAS,sBAAsB,CAAC,OAAO,yBAAyB,CAAC,EACnF,KAAK,CAAC,UAAU,SAAS,uBAAuB,EAClD,YAAY;IACV,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC9C,QAAQ,CAAC,UAAU,EAAE;QACjB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;QACnC,QAAQ,CAAC,UAAU,EAAE,gCAAgC,CAAC,OAAO,yBAAyB,EAAE,UAAU,CAAC,CAAA;KACtG,CAAA;CACJ,KAAG,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAuB7C,CAAA"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/common/registry.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEvE,MAAM,MAAM,wBAAwB,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,CAAA;AAClE,KAAK,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;AACpE,KAAK,sBAAsB,CAAC,MAAM,SAAS,uBAAuB,IAAI;IAClE,QAAQ,EAAE,IAAI,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CAC3F,CAAA;AACD,KAAK,gCAAgC,CAAC,MAAM,SAAS,uBAAuB,EAAE,UAAU,SAAS,uBAAuB,IACpH,UAAU,GAAG;IAAE,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,MAAM,CAAC,GAAG,KAAK;CAAE,CAAA;AAEtF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAA;AACX,MAAM,MAAM,0BAA0B,GAAG,MAAM,OAAO,yBAAyB,CAAA;AAE/E,MAAM,MAAM,mBAAmB,CAAC,QAAQ,SAAS,MAAM,IAAI;IACvD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,MAAM,aAAa,CAAA;IAC3D,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAA;CAC1F,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,QAAQ,SAAS,MAAM,EAAE,UAAU,SAAS,uBAAuB,IAAI;IACrG,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC9C,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,yBAAyB,GAAG,UAAU,CAAC,CAAA;IAC5E,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;QAAE,qBAAqB,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAA;CACrE,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,GAC5B,KAAK,CAAC,QAAQ,SAAS,MAAM,EAC7B,KAAK,CAAC,YAAY,SAAS,sBAAsB,CAAC,OAAO,yBAAyB,CAAC,EACnF,KAAK,CAAC,UAAU,SAAS,uBAAuB,EAClD,YAAY;IACV,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC9C,QAAQ,CAAC,UAAU,EAAE;QACjB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;QACnC,QAAQ,CAAC,UAAU,EAAE,gCAAgC,CAAC,OAAO,yBAAyB,EAAE,UAAU,CAAC,CAAA;KACtG,CAAA;CACJ,KAAG,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAuB7C,CAAA"}
@@ -3,7 +3,7 @@ export { Textarea, type TextareaMentionOption, type TextareaMentions, type Texta
3
3
  export { SearchField, type SearchFieldProps } from "../core/primitive/SearchField/index.js";
4
4
  export { NumberField, type NumberFieldProps } from "../core/primitive/NumberField/index.js";
5
5
  export { Checkbox, type CheckboxProps } from "../core/primitive/Checkbox/index.js";
6
- export { Switch, type SwitchProps } from "../core/primitive/Switch/index.js";
6
+ export { Switch, type SwitchProps, type SwitchSize } from "../core/primitive/Switch/index.js";
7
7
  export { Slider, type SliderProps, type SliderValue } from "../core/primitive/Slider/index.js";
8
8
  export { DateField, type DateFieldProps, type DateGranularity } from "../core/primitive/DateField/index.js";
9
9
  export { TimeField, type TimeFieldProps } from "../core/primitive/TimeField/index.js";
@@ -37,7 +37,7 @@ export declare const COMMON_FORMS_COMPONENTS: Readonly<{
37
37
  readonly SegmentedControl: ({ options, value, defaultValue, onValueChange, width, label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, isSkeleton, }: import("./renderers-forms.js").SegmentedControlProps) => import("react").JSX.Element;
38
38
  readonly Select: ({ options, placeholder, value, defaultValue, onValueChange, isPending, isSkeleton, variant, ...field }: import("./renderers-forms.js").SelectProps) => import("react").JSX.Element;
39
39
  readonly Slider: ({ value, defaultValue, onValueChange, onValueCommit, minValue, maxValue, step, formatOptions, thumbLabels, orientation, label, isLabelHidden, description, errorMessage, isInvalid, isRequired, isDisabled, isReadOnly, name, }: import("./renderers-forms.js").SliderProps) => import("react").JSX.Element;
40
- readonly Switch: ({ value, isSelected, defaultSelected, onSelectedChange, isSkeleton, ...field }: import("./renderers-forms.js").SwitchProps) => import("react").JSX.Element;
40
+ readonly Switch: ({ value, isSelected, defaultSelected, onSelectedChange, size, thumbIcon, selectedThumbIcon, isSkeleton, ...field }: import("./renderers-forms.js").SwitchProps) => import("react").JSX.Element;
41
41
  readonly Textarea: ({ id, placeholder, value, defaultValue, rows, isSkeleton, maxLength, minLength, onValueChange, variant, onSubmitShortcut, mentions, onBlur, onPaste, autoFocus, ...field }: import("./renderers-forms.js").TextareaProps) => import("react").JSX.Element;
42
42
  readonly TimeField: ({ value, defaultValue, onValueChange, minValue, maxValue, granularity, hourCycle, variant, ...field }: import("./renderers-forms.js").TimeFieldProps) => import("react").JSX.Element;
43
43
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"renderers-forms.d.ts","sourceRoot":"","sources":["../../src/common/renderers-forms.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACzK,OAAO,EAAE,QAAQ,EAAE,KAAK,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACrI,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAC3F,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAC3F,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAClF,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC5E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC9F,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAA;AAC3G,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AAC9F,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAClF,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACjG,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAC5I,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,uCAAuC,CAAA;AACxF,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AAC9H,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAC3F,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC1F,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACrF,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,yCAAyC,CAAA;AAEzH,mFAAmF;AACnF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAIzB,CAAA"}
1
+ {"version":3,"file":"renderers-forms.d.ts","sourceRoot":"","sources":["../../src/common/renderers-forms.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACzK,OAAO,EAAE,QAAQ,EAAE,KAAK,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACrI,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAC3F,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAC3F,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAClF,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAC7F,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC9F,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAA;AAC3G,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,sCAAsC,CAAA;AACrF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,yCAAyC,CAAA;AAC9F,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAClF,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACjG,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAC5I,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,uCAAuC,CAAA;AACxF,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AAC9H,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAC3F,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC1F,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACrF,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,yCAAyC,CAAA;AAEzH,mFAAmF;AACnF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAIzB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderers-forms.js","sourceRoot":"","sources":["../../src/common/renderers-forms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderers-forms.js","sourceRoot":"","sources":["../../src/common/renderers-forms.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,gGAAgG;AAChG,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAEzE,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAA2F,MAAM,kCAAkC,CAAA;AACzK,OAAO,EAAE,QAAQ,EAAyE,MAAM,qCAAqC,CAAA;AACrI,OAAO,EAAE,WAAW,EAAyB,MAAM,wCAAwC,CAAA;AAC3F,OAAO,EAAE,WAAW,EAAyB,MAAM,wCAAwC,CAAA;AAC3F,OAAO,EAAE,QAAQ,EAAsB,MAAM,qCAAqC,CAAA;AAClF,OAAO,EAAE,MAAM,EAAqC,MAAM,mCAAmC,CAAA;AAC7F,OAAO,EAAE,MAAM,EAAsC,MAAM,mCAAmC,CAAA;AAC9F,OAAO,EAAE,SAAS,EAA6C,MAAM,sCAAsC,CAAA;AAC3G,OAAO,EAAE,SAAS,EAAuB,MAAM,sCAAsC,CAAA;AACrF,OAAO,EAAE,YAAY,EAA0B,MAAM,yCAAyC,CAAA;AAC9F,OAAO,EAAE,QAAQ,EAAsB,MAAM,qCAAqC,CAAA;AAClF,OAAO,EAAE,IAAI,EAA6C,MAAM,iCAAiC,CAAA;AACjG,OAAO,EAAE,aAAa,EAAsE,MAAM,0CAA0C,CAAA;AAC5I,OAAO,EAAE,UAAU,EAAwB,MAAM,uCAAuC,CAAA;AACxF,OAAO,EAAE,gBAAgB,EAAkD,MAAM,6CAA6C,CAAA;AAC9H,OAAO,EAAE,WAAW,EAAyB,MAAM,wCAAwC,CAAA;AAC3F,OAAO,EAAE,MAAM,EAAqC,MAAM,gCAAgC,CAAA;AAC1F,OAAO,EAAE,QAAQ,EAAsB,MAAM,kCAAkC,CAAA;AAC/E,OAAO,EAAE,UAAU,EAAwB,MAAM,oCAAoC,CAAA;AACrF,OAAO,EAAE,eAAe,EAAkD,MAAM,yCAAyC,CAAA;AAEzH,mFAAmF;AACnF,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC;IACjD,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK;IAC7F,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM;IAC5F,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;CAC7B,CAAC,CAAA"}