@rarui/components 1.21.0 → 1.23.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.
package/dist/index.d.ts CHANGED
@@ -17641,6 +17641,53 @@ declare const paginationStyles: {
17641
17641
 
17642
17642
  type PaginationVariants = Omit<NonNullable<RecipeVariants<typeof paginationStyles.item>>, "selected">;
17643
17643
 
17644
+ declare const sidebarStyles: {
17645
+ sidebar: RuntimeFn<{
17646
+ /**
17647
+ * Specifies where the sidebar should be positioned
17648
+ */
17649
+ position: {
17650
+ left: {
17651
+ left: number;
17652
+ transform: "translateX(-100%)";
17653
+ };
17654
+ right: {
17655
+ right: number;
17656
+ transform: "translateX(100%)";
17657
+ };
17658
+ };
17659
+ /**
17660
+ * Determines if the sidebar is shown or not.
17661
+ */
17662
+ open: {
17663
+ true: {
17664
+ opacity: number;
17665
+ transform: "translateX(0)";
17666
+ };
17667
+ };
17668
+ }>;
17669
+ overlay: string;
17670
+ };
17671
+ declare const sidebarPaddingProperties: {
17672
+ none: string;
17673
+ small: `var(--${string})` | `var(--${string}, ${string})`;
17674
+ medium: `var(--${string})` | `var(--${string}, ${string})`;
17675
+ };
17676
+
17677
+ type SidebarVariants = RecipeVariants<typeof sidebarStyles.sidebar>;
17678
+ type SidebarDynamicProperties = Pick<StandardLonghandProperties, "maxWidth">;
17679
+ interface SidebarSprinkle extends SidebarDynamicProperties {
17680
+ /**
17681
+ * The **`padding`** CSS shorthand property sets the padding area on all four sides of an element at once.
17682
+ * @default small
17683
+ */
17684
+ padding?: AddDollar<keyof typeof sidebarPaddingProperties> | Conditions<AddDollar<keyof typeof sidebarPaddingProperties>>;
17685
+ /**
17686
+ * The zIndex property specifies the stack order of the box.
17687
+ */
17688
+ zIndex?: AddDollar<keyof typeof zIndexProperties> | Conditions<AddDollar<keyof typeof zIndexProperties>>;
17689
+ }
17690
+
17644
17691
  declare const sideNavigationStyles: {
17645
17692
  sideNavigation: RuntimeFn<{
17646
17693
  active: {
@@ -17953,6 +18000,16 @@ interface CheckboxTyping {
17953
18000
  * The id of the checkbox.
17954
18001
  */
17955
18002
  id: string;
18003
+ /**
18004
+ * Whether the checkbox is checked.
18005
+ * @default false
18006
+ */
18007
+ checked?: boolean;
18008
+ /**
18009
+ * Whether the checkbox is readonly.
18010
+ * @default false
18011
+ */
18012
+ readonly?: boolean;
17956
18013
  }
17957
18014
  type CheckboxProps = CheckboxTyping & CheckboxVariants;
17958
18015
 
@@ -18166,6 +18223,33 @@ interface ModalHeaderTypings {
18166
18223
  }
18167
18224
  type ModalHeaderProps = ModalHeaderTypings;
18168
18225
 
18226
+ interface SidebarTyping {
18227
+ /**
18228
+ * Whether the sidebar is open or not.
18229
+ */
18230
+ open?: boolean;
18231
+ /**
18232
+ * Specifies the ID of the portal element where the sidebar should be rendered.
18233
+ * This can be useful for rendering the sidebar in a different part of the DOM, such as a modal or overlay.
18234
+ */
18235
+ portalId?: string;
18236
+ /**
18237
+ * Callback fired when the component requests to be closed.
18238
+ * @TJS-type () => void;
18239
+ */
18240
+ onRemove?: () => void;
18241
+ }
18242
+ type SidebarProps = SidebarTyping & SidebarSprinkle & SidebarVariants;
18243
+
18244
+ interface BreadcrumbProps {
18245
+ /**
18246
+ * Specifies the number of breadcrumb items to display after truncation.
18247
+ * This is useful for managing the display of long breadcrumb lists.
18248
+ * @default 10
18249
+ */
18250
+ itemsAfterTruncate?: number;
18251
+ }
18252
+
18169
18253
  interface BreadcrumbItemTyping {
18170
18254
  /**
18171
18255
  * The name of the breadcrumb item. This is typically the text that is displayed for the item.
@@ -18223,6 +18307,30 @@ interface SideNavigationItemTypings {
18223
18307
  }
18224
18308
  type SideNavigationItemProps = SideNavigationItemTypings & Pick<SideNavigationVariants, "level">;
18225
18309
 
18310
+ /**
18311
+ * Utility types for Web Components property handling in Rarui Design System
18312
+ *
18313
+ * These types help convert React-style camelCase properties to web component
18314
+ * kebab-case attributes while maintaining type safety.
18315
+ */
18316
+ /**
18317
+ * Converts a camelCase string to kebab-case
18318
+ *
18319
+ * @example
18320
+ * CamelToKebab<"maxWidth"> // "max-width"
18321
+ * CamelToKebab<"portalId"> // "portal-id"
18322
+ * CamelToKebab<"position"> // "position"
18323
+ */
18324
+ type CamelToKebab<T extends string> = T extends `${infer Start}${infer Rest}` ? Rest extends `${infer First}${infer End}` ? First extends Uppercase<First> ? `${Lowercase<Start>}-${CamelToKebab<`${Lowercase<First>}${End}`>}` : `${Lowercase<Start>}${CamelToKebab<Rest>}` : Lowercase<T> : T;
18325
+ type CamelToKebabKeys<T> = {
18326
+ [K in keyof T as CamelToKebab<string & K>]: T[K];
18327
+ };
18328
+ /**
18329
+ * Common React properties that should be excluded from web component types
18330
+ */
18331
+ type CommonReactExclusions = "children" | "className" | "style" | "ref" | "key";
18332
+ type WebComponentProperties<TReactProps, TExclude extends keyof TReactProps = never> = CamelToKebabKeys<Omit<Partial<TReactProps>, CommonReactExclusions | TExclude>>;
18333
+
18226
18334
  declare global {
18227
18335
  interface HTMLElementTagNameMap {
18228
18336
  "rarui-avatar": RaruiAvatar;
@@ -18235,7 +18343,8 @@ declare global {
18235
18343
  *
18236
18344
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/exhibition/avatar) for more details.
18237
18345
  */
18238
- type AvatarProperties = Pick<AvatarProps, "size">;
18346
+ type AvatarManifestProperties = Pick<AvatarProps, "size">;
18347
+ type AvatarProperties = WebComponentProperties<AvatarManifestProperties>;
18239
18348
 
18240
18349
  declare class RaruiAvatar extends LitElement {
18241
18350
  size?: AvatarProperties["size"];
@@ -18255,7 +18364,8 @@ declare global {
18255
18364
  *
18256
18365
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/exhibition/badge) for more details.
18257
18366
  */
18258
- type BadgeProperties = Partial<BadgeProps>;
18367
+ type BadgeManifestProperties = BadgeProps;
18368
+ type BadgeProperties = WebComponentProperties<BadgeManifestProperties>;
18259
18369
 
18260
18370
  declare class RaruiBagde extends LitElement {
18261
18371
  variant?: BadgeProperties["variant"];
@@ -18277,7 +18387,8 @@ declare global {
18277
18387
  *
18278
18388
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/exhibition/divider) for more details.
18279
18389
  */
18280
- type DividerProperties = Partial<DividerProps>;
18390
+ type DividerManifestProperties = DividerProps;
18391
+ type DividerProperties = WebComponentProperties<DividerManifestProperties>;
18281
18392
 
18282
18393
  declare class RaruiDivider extends LitElement {
18283
18394
  sprinkleAttrs: Record<string, string>;
@@ -18290,7 +18401,7 @@ declare class RaruiDivider extends LitElement {
18290
18401
  render(): TemplateResult<1>;
18291
18402
  }
18292
18403
 
18293
- type IconName = "add-circle-filled" | "add-circle-outlined" | "alarm-filled" | "alarm-outlined" | "alternate-email" | "archive-all-filled" | "archive-all-outlined" | "archive-filled" | "archive-in-filled" | "archive-in-outlined" | "archive-outlined" | "arrow-alt-down" | "arrow-alt-left" | "arrow-alt-right" | "arrow-alt-up" | "arrow-circle-down-filled" | "arrow-circle-down-outlined" | "arrow-circle-up-filled" | "arrow-circle-up-outlined" | "arrow-circled-down-circle-outlined" | "arrow-circled-down-filled" | "arrow-circled-up-circle-outlined" | "arrow-direction-down-up" | "arrow-direction-left-right" | "arrow-direction-right-left" | "arrow-direction-up-down" | "arrow-directions" | "arrow-down" | "arrow-down-left" | "arrow-down-right" | "arrow-first-page" | "arrow-last-page" | "arrow-left" | "arrow-line-down" | "arrow-line-left" | "arrow-line-long-down" | "arrow-line-long-left" | "arrow-line-long-right" | "arrow-line-long-up" | "arrow-line-right" | "arrow-line-up" | "arrow-right" | "arrow-subdirectory-left" | "arrow-subdirectory-right" | "arrow-trending-down" | "arrow-trending-up" | "arrow-up" | "arrow-up-left" | "arrow-up-right" | "attachment" | "backspace" | "backspace-outlined" | "barley" | "barley-off" | "bolt-circle-filled" | "bolt-circle-outlined" | "bookmark-filled" | "bookmark-outlined" | "calendar-date-range-filled" | "calendar-date-range-outlined" | "calendar-event-filled" | "calendar-event-outlined" | "calendar-filled" | "calendar-outlined" | "camera-filled" | "camera-outlined" | "camera-shutter-filled" | "camera-shutter-outlined" | "cancel-circle-filled" | "cancel-circle-outlined" | "car-filled" | "car-outlined" | "chart-bars-filled" | "chart-bars-outlined" | "chat-bubble-filled" | "chat-bubble-outlined" | "chat-message-filled" | "chat-message-outlined" | "check" | "check-circle-filled" | "check-circle-outlined" | "check-small" | "chevron-big-down" | "chevron-big-left" | "chevron-big-right" | "chevron-big-up" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "clock-filled" | "clock-outlined" | "close" | "cloud-filled" | "cloud-outlined" | "contact-support-filled" | "contact-support-outlined" | "content-copy-filled" | "content-copy-outlined" | "content-paste-filled" | "content-paste-outlined" | "conversation-filled" | "conversation-outlined" | "copyright-filled" | "copyright-outlined" | "credit-card-filled" | "credit-card-outlined" | "danger-filled" | "danger-outlined" | "dashboard-filled" | "dashboard-outlined" | "document-filled" | "document-outlined" | "document-text-filled" | "document-text-outlined" | "download-filled" | "download-outlined" | "eco-filled" | "eco-outlined" | "edit-filled" | "edit-outlined" | "euro-symbol" | "exit-fullscreen" | "eye-filled" | "eye-off-filled" | "eye-off-outlined" | "eye-outlined" | "facebook-filled" | "facebook-outlined" | "file-copy-filled" | "file-copy-outlined" | "filter-alt-filled" | "filter-alt-outlined" | "filter-list" | "fingerprint" | "flag-filled" | "flag-outlined" | "flag-tour-filled" | "flag-tour-outlined" | "flower-filled" | "flower-outlined" | "folder-filled" | "folder-list-filled" | "folder-list-outlined" | "folder-open" | "folder-outlined" | "fruit-apple-filled" | "fruit-apple-outlined" | "fullscreen-filled" | "fullscreen-outlined" | "google" | "google-play" | "headphones-filled" | "headphones-outlined" | "heart-filled" | "heart-outlined" | "help-filled" | "help-outlined" | "history" | "home-filled" | "home-outlined" | "image-filled" | "image-outlined" | "info-circle-filled" | "info-circle-outlined" | "instagram" | "instagram-outlined" | "label-filled" | "label-important-filled" | "label-important-outlined" | "label-outlined" | "language" | "lightbulb-filled" | "lightbulb-outlined" | "link" | "linkedin-filled" | "linkedin-outlined" | "loader" | "loading" | "lock-filled" | "lock-open-filled" | "lock-open-outlined" | "lock-outlined" | "login" | "logout" | "mail-filled" | "mail-open-filled" | "mail-open-outlined" | "mail-outlined" | "menu" | "menu-large" | "microphone-filled" | "microphone-outlined" | "minus" | "money-filled" | "money-outlined" | "mood-bad" | "mood-bad-outlined" | "mood-filled" | "mood-outlined" | "more-horiz" | "more-vert" | "music-note-filled" | "music-note-outlined" | "notification-filled" | "notification-outlined" | "open-in-new" | "package" | "package-outlined" | "pause-filled" | "pause-outlined" | "pets-filled" | "pets-outlined" | "phone-call-filled" | "phone-call-outlined" | "phone-filled" | "phone-outlined" | "pin-filled" | "pin-outlined" | "play-arrow-filled" | "play-arrow-outlined" | "play-circle-filled" | "play-circle-outlined" | "plus" | "power-settings-new" | "printer-filled" | "printer-outlined" | "push-pin-filled" | "push-pin-outlined" | "receipt-filled" | "receipt-outlined" | "recycle" | "redeem" | "redo" | "refresh" | "refresh-alt" | "remove" | "remove-circle-filled" | "remove-circle-outlined" | "repeat" | "reply" | "save-alt" | "screen-outlined" | "search" | "send-filled" | "send-outlined" | "sentiment-dissatisfied-filled" | "sentiment-dissatisfied-outlined" | "sentiment-neutral-filled" | "sentiment-neutral-outlined" | "sentiment-satisfied-filled" | "sentiment-satisfied-outlined" | "sentiment-very-dissatisfied-filled" | "sentiment-very-dissatisfied-outlined" | "sentiment-very-satisfied-filled" | "sentiment-very-satisfied-outlined" | "settings-filled" | "settings-outlined" | "share-filled" | "share-outlined" | "shopping-bag-filled" | "shopping-bag-outlined" | "shopping-cart-add" | "shopping-cart-filled" | "shopping-cart-outlined" | "sprout" | "sprout-outline-outlined" | "star-filled" | "star-outlined" | "stay-primary-portrait" | "storefront" | "tag-filled" | "tag-outlined" | "textsms-filled" | "textsms-outlined" | "thumb-down-filled" | "thumb-down-outlined" | "thumb-up-filled" | "thumb-up-outlined" | "tiktok" | "toc" | "trash-filled" | "trash-outlined" | "truck-filled" | "truck-outlined" | "tune" | "twitter" | "undo" | "upload-filled" | "upload-outlined" | "user-circle-filled" | "user-circle-outlined" | "user-filled" | "user-outlined" | "user-square-filled" | "user-square-outlined" | "users-filled" | "users-outlined" | "view-grid-filled" | "view-grid-outlined" | "view-list-filled" | "view-list-outlined" | "warning-bubble-filled" | "warning-bubble-outlined" | "warning-filled" | "warning-outlined" | "whatsapp-filled" | "whatsapp-outlined" | "work-filled" | "work-outlined" | "wysiwyg-filled" | "youtube-filled" | "youtube-outlined" | "zoom-in" | "zoom-out";
18404
+ type IconName = "phone-call-outlined" | "add-circle-filled" | "add-circle-outlined" | "alarm-filled" | "alarm-outlined" | "alternate-email" | "archive-all-filled" | "archive-all-outlined" | "archive-filled" | "archive-in-filled" | "archive-in-outlined" | "archive-outlined" | "arrow-alt-down" | "arrow-alt-left" | "arrow-alt-right" | "arrow-alt-up" | "arrow-circle-down-filled" | "arrow-circle-down-outlined" | "arrow-circle-up-filled" | "arrow-circle-up-outlined" | "arrow-circled-down-circle-outlined" | "arrow-circled-down-filled" | "arrow-circled-up-circle-outlined" | "arrow-direction-down-up" | "arrow-direction-left-right" | "arrow-direction-right-left" | "arrow-direction-up-down" | "arrow-directions" | "arrow-down" | "arrow-down-left" | "arrow-down-right" | "arrow-first-page" | "arrow-last-page" | "arrow-left" | "arrow-line-down" | "arrow-line-left" | "arrow-line-long-down" | "arrow-line-long-left" | "arrow-line-long-right" | "arrow-line-long-up" | "arrow-line-right" | "arrow-line-up" | "arrow-right" | "arrow-subdirectory-left" | "arrow-subdirectory-right" | "arrow-trending-down" | "arrow-trending-up" | "arrow-up" | "arrow-up-left" | "arrow-up-right" | "attachment" | "backspace" | "backspace-outlined" | "barley" | "barley-off" | "bolt-circle-filled" | "bolt-circle-outlined" | "bookmark-filled" | "bookmark-outlined" | "calendar-date-range-filled" | "calendar-date-range-outlined" | "calendar-event-filled" | "calendar-event-outlined" | "calendar-filled" | "calendar-outlined" | "camera-filled" | "camera-outlined" | "camera-shutter-filled" | "camera-shutter-outlined" | "cancel-circle-filled" | "cancel-circle-outlined" | "car-filled" | "car-outlined" | "chart-bars-filled" | "chart-bars-outlined" | "chat-bubble-filled" | "chat-bubble-outlined" | "chat-message-filled" | "chat-message-outlined" | "check" | "check-circle-filled" | "check-circle-outlined" | "check-small" | "chevron-big-down" | "chevron-big-left" | "chevron-big-right" | "chevron-big-up" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "clock-filled" | "clock-outlined" | "close" | "cloud-filled" | "cloud-outlined" | "contact-support-filled" | "contact-support-outlined" | "content-copy-filled" | "content-copy-outlined" | "content-paste-filled" | "content-paste-outlined" | "conversation-filled" | "conversation-outlined" | "copyright-filled" | "copyright-outlined" | "credit-card-filled" | "credit-card-outlined" | "danger-filled" | "danger-outlined" | "dashboard-filled" | "dashboard-outlined" | "document-filled" | "document-outlined" | "document-text-filled" | "document-text-outlined" | "download-filled" | "download-outlined" | "eco-filled" | "eco-outlined" | "edit-filled" | "edit-outlined" | "euro-symbol" | "exit-fullscreen" | "eye-filled" | "eye-off-filled" | "eye-off-outlined" | "eye-outlined" | "facebook-filled" | "facebook-outlined" | "file-copy-filled" | "file-copy-outlined" | "filter-alt-filled" | "filter-alt-outlined" | "filter-list" | "fingerprint" | "flag-filled" | "flag-outlined" | "flag-tour-filled" | "flag-tour-outlined" | "flower-filled" | "flower-outlined" | "folder-filled" | "folder-list-filled" | "folder-list-outlined" | "folder-open" | "folder-outlined" | "fruit-apple-filled" | "fruit-apple-outlined" | "fullscreen-filled" | "fullscreen-outlined" | "google" | "google-play" | "headphones-filled" | "headphones-outlined" | "heart-filled" | "heart-outlined" | "help-filled" | "help-outlined" | "history" | "home-filled" | "home-outlined" | "image-filled" | "image-outlined" | "info-circle-filled" | "info-circle-outlined" | "instagram" | "instagram-outlined" | "label-filled" | "label-important-filled" | "label-important-outlined" | "label-outlined" | "language" | "lightbulb-filled" | "lightbulb-outlined" | "link" | "linkedin-filled" | "linkedin-outlined" | "loader" | "loading" | "lock-filled" | "lock-open-filled" | "lock-open-outlined" | "lock-outlined" | "login" | "logout" | "mail-filled" | "mail-open-filled" | "mail-open-outlined" | "mail-outlined" | "menu" | "menu-large" | "microphone-filled" | "microphone-outlined" | "minus" | "money-filled" | "money-outlined" | "mood-bad" | "mood-bad-outlined" | "mood-filled" | "mood-outlined" | "more-horiz" | "more-vert" | "music-note-filled" | "music-note-outlined" | "notification-filled" | "notification-outlined" | "open-in-new" | "package" | "package-outlined" | "pause-filled" | "pause-outlined" | "pets-filled" | "pets-outlined" | "phone-call-filled" | "phone-filled" | "phone-outlined" | "pin-filled" | "pin-outlined" | "play-arrow-filled" | "play-arrow-outlined" | "play-circle-filled" | "play-circle-outlined" | "plus" | "power-settings-new" | "printer-filled" | "printer-outlined" | "push-pin-filled" | "push-pin-outlined" | "receipt-filled" | "receipt-outlined" | "recycle" | "redeem" | "redo" | "refresh" | "refresh-alt" | "remove" | "remove-circle-filled" | "remove-circle-outlined" | "repeat" | "reply" | "save-alt" | "screen-outlined" | "search" | "send-filled" | "send-outlined" | "sentiment-dissatisfied-filled" | "sentiment-dissatisfied-outlined" | "sentiment-neutral-filled" | "sentiment-neutral-outlined" | "sentiment-satisfied-filled" | "sentiment-satisfied-outlined" | "sentiment-very-dissatisfied-filled" | "sentiment-very-dissatisfied-outlined" | "sentiment-very-satisfied-filled" | "sentiment-very-satisfied-outlined" | "settings-filled" | "settings-outlined" | "share-filled" | "share-outlined" | "shopping-bag-filled" | "shopping-bag-outlined" | "shopping-cart-add" | "shopping-cart-filled" | "shopping-cart-outlined" | "sprout" | "sprout-outline-outlined" | "star-filled" | "star-outlined" | "stay-primary-portrait" | "storefront" | "tag-filled" | "tag-outlined" | "textsms-filled" | "textsms-outlined" | "thumb-down-filled" | "thumb-down-outlined" | "thumb-up-filled" | "thumb-up-outlined" | "tiktok" | "toc" | "trash-filled" | "trash-outlined" | "truck-filled" | "truck-outlined" | "tune" | "twitter" | "undo" | "upload-filled" | "upload-outlined" | "user-circle-filled" | "user-circle-outlined" | "user-filled" | "user-outlined" | "user-square-filled" | "user-square-outlined" | "users-filled" | "users-outlined" | "view-grid-filled" | "view-grid-outlined" | "view-list-filled" | "view-list-outlined" | "warning-bubble-filled" | "warning-bubble-outlined" | "warning-filled" | "warning-outlined" | "whatsapp-filled" | "whatsapp-outlined" | "work-filled" | "work-outlined" | "wysiwyg-filled" | "youtube-filled" | "youtube-outlined" | "zoom-in" | "zoom-out";
18294
18405
 
18295
18406
  declare global {
18296
18407
  interface HTMLElementTagNameMap {
@@ -18305,7 +18416,7 @@ declare global {
18305
18416
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/exhibition/icon) for more details.
18306
18417
  */
18307
18418
  type Sizes = "small" | "medium" | "large";
18308
- type IconProperties = IconProps & {
18419
+ type IconManifestProperties = IconProps & {
18309
18420
  /**
18310
18421
  * Name of the icon to be rendered (must be in the @rarui/icons package).
18311
18422
  */
@@ -18316,6 +18427,7 @@ type IconProperties = IconProps & {
18316
18427
  */
18317
18428
  size?: Sizes | number;
18318
18429
  };
18430
+ type IconProperties = WebComponentProperties<IconManifestProperties>;
18319
18431
 
18320
18432
  declare class RaruiIcon extends LitElement {
18321
18433
  sprinkleAttrs: Record<string, string>;
@@ -18338,10 +18450,11 @@ declare global {
18338
18450
  *
18339
18451
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/exhibition/label) for more details.
18340
18452
  */
18341
- type LabelProperties = Partial<LabelProps>;
18453
+ type LabelManifestProperties = LabelProps;
18454
+ type LabelProperties = WebComponentProperties<LabelManifestProperties>;
18342
18455
 
18343
18456
  declare class RaruiLabel extends LitElement {
18344
- htmlFor: LabelProperties["htmlFor"];
18457
+ htmlFor: LabelProperties["html-for"];
18345
18458
  hidden: boolean;
18346
18459
  static styles: CSSResult;
18347
18460
  render(): TemplateResult<1>;
@@ -18359,7 +18472,8 @@ declare global {
18359
18472
  *
18360
18473
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/exhibition/stepper) for more details.
18361
18474
  */
18362
- type StepperStepProperties = Partial<StepperStepProps>;
18475
+ type StepperStepManifestProperties = StepperStepProps;
18476
+ type StepperStepProperties = WebComponentProperties<StepperStepManifestProperties>;
18363
18477
 
18364
18478
  declare class RaruiStepperStep extends LitElement {
18365
18479
  description: StepperStepProperties["description"];
@@ -18383,7 +18497,8 @@ declare global {
18383
18497
  *
18384
18498
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/exhibition/stepper) for more details.
18385
18499
  */
18386
- type StepperProperties = Partial<StepperProps>;
18500
+ type StepperManifestProperties = StepperProps;
18501
+ type StepperProperties = WebComponentProperties<StepperManifestProperties>;
18387
18502
 
18388
18503
  declare class RaruiStepper extends LitElement {
18389
18504
  direction: StepperProperties["direction"];
@@ -18406,14 +18521,15 @@ declare global {
18406
18521
  *
18407
18522
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/exhibition/typography) for more details.
18408
18523
  */
18409
- type TextProperties = Omit<TextProps, "as">;
18524
+ type TextManifestProperties = TextProps;
18525
+ type TextProperties = WebComponentProperties<TextManifestProperties, "as">;
18410
18526
 
18411
18527
  declare class RaruiText extends LitElement {
18412
18528
  sprinkleAttrs: Record<string, string>;
18413
- "line-clamp"?: TextProperties["lineClamp"];
18529
+ "line-clamp"?: TextProperties["line-clamp"];
18414
18530
  "color"?: TextProperties["color"];
18415
- "font-weight"?: TextProperties["fontWeight"];
18416
- "text-align"?: TextProperties["textAlign"];
18531
+ "font-weight"?: TextProperties["font-weight"];
18532
+ "text-align"?: TextProperties["text-align"];
18417
18533
  static styles: CSSResult;
18418
18534
  render(): TemplateResult<1>;
18419
18535
  }
@@ -18430,13 +18546,14 @@ declare global {
18430
18546
  *
18431
18547
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/exhibition/typography) for more details.
18432
18548
  */
18433
- type TitleProperties = Partial<TitleProps>;
18549
+ type TitleManifestProperties = TitleProps;
18550
+ type TitleProperties = WebComponentProperties<TitleManifestProperties>;
18434
18551
 
18435
18552
  declare class RaruiTitle extends LitElement {
18436
18553
  sprinkleAttrs: Record<string, string>;
18437
18554
  as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
18438
- "font-weight"?: TitleProperties["fontWeight"];
18439
- "text-align"?: TitleProperties["textAlign"];
18555
+ "font-weight"?: TitleProperties["font-weight"];
18556
+ "text-align"?: TitleProperties["text-align"];
18440
18557
  static styles: CSSResult;
18441
18558
  render(): TemplateResult<1>;
18442
18559
  }
@@ -18465,7 +18582,7 @@ declare global {
18465
18582
  *
18466
18583
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/exhibition/tooltip) for more details.
18467
18584
  */
18468
- type TooltipProperties = Partial<Omit<TooltipProps, "visible" | "onVisibility" | "portalId">> & {
18585
+ type TooltipManifestProperties = Omit<TooltipProps, "visible" | "onVisibility" | "portalId"> & {
18469
18586
  /**
18470
18587
  * Position of the tooltip.
18471
18588
  * @default bottom
@@ -18485,16 +18602,17 @@ type TooltipProperties = Partial<Omit<TooltipProps, "visible" | "onVisibility" |
18485
18602
  */
18486
18603
  strategy?: "fixed" | "absolute";
18487
18604
  };
18605
+ type TooltipProperties = WebComponentProperties<TooltipManifestProperties>;
18488
18606
 
18489
18607
  declare class RaruiTooltip extends LitElement {
18490
18608
  arrow: TooltipProperties["arrow"];
18491
18609
  padding: TooltipProperties["padding"];
18492
18610
  offset: TooltipProperties["offset"];
18493
18611
  inverted: TooltipProperties["inverted"];
18494
- enabledDismiss: TooltipProperties["enabledDismiss"];
18495
- enabledClick: TooltipProperties["enabledClick"];
18496
- enabledHover: TooltipProperties["enabledHover"];
18497
- matchReferenceWidth: TooltipProperties["matchReferenceWidth"];
18612
+ enabledDismiss: TooltipProperties["enabled-dismiss"];
18613
+ enabledClick: TooltipProperties["enabled-click"];
18614
+ enabledHover: TooltipProperties["enabled-hover"];
18615
+ matchReferenceWidth: TooltipProperties["match-reference-width"];
18498
18616
  position: TooltipProperties["position"];
18499
18617
  strategy: TooltipProperties["strategy"];
18500
18618
  open: boolean;
@@ -18530,7 +18648,8 @@ declare global {
18530
18648
  *
18531
18649
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/surface/card) for more details.
18532
18650
  */
18533
- type ProgressCircleProperties = Partial<ProgressCircleProps>;
18651
+ type ProgressCircleManifestProperties = ProgressCircleProps;
18652
+ type ProgressCircleProperties = WebComponentProperties<ProgressCircleManifestProperties>;
18534
18653
 
18535
18654
  declare class RaruiProgressCircle extends LitElement {
18536
18655
  size?: ProgressCircleProperties["size"];
@@ -18552,7 +18671,8 @@ declare global {
18552
18671
  *
18553
18672
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/exhibition/badge) for more details.
18554
18673
  */
18555
- type ProgressProperties = Partial<ProgressProps>;
18674
+ type ProgressManifestProperties = ProgressProps;
18675
+ type ProgressProperties = WebComponentProperties<ProgressManifestProperties>;
18556
18676
 
18557
18677
  declare class RaruiProgress extends LitElement {
18558
18678
  percentage?: ProgressProperties["percentage"];
@@ -18574,7 +18694,8 @@ declare global {
18574
18694
  *
18575
18695
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/exhibition/status) for more details.
18576
18696
  */
18577
- type StatusProperties = Partial<StatusProps>;
18697
+ type StatusManifestProperties = StatusProps;
18698
+ type StatusProperties = WebComponentProperties<StatusManifestProperties>;
18578
18699
 
18579
18700
  declare class RaruiStatus extends LitElement {
18580
18701
  appearance?: StatusProperties["appearance"];
@@ -18598,7 +18719,7 @@ declare global {
18598
18719
  *
18599
18720
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/input/button) for more details.
18600
18721
  */
18601
- type ButtonProperties = Partial<ButtonProps> & {
18722
+ type ButtonManifestProperties = ButtonProps & {
18602
18723
  /**
18603
18724
  * Defines the native button type.
18604
18725
  * Can be 'button', 'submit', or 'reset'.
@@ -18606,6 +18727,7 @@ type ButtonProperties = Partial<ButtonProps> & {
18606
18727
  */
18607
18728
  type?: "button" | "submit" | "reset";
18608
18729
  };
18730
+ type ButtonProperties = WebComponentProperties<ButtonManifestProperties>;
18609
18731
 
18610
18732
  declare class RaruiButton extends LitElement {
18611
18733
  type: ButtonProperties["type"];
@@ -18628,9 +18750,32 @@ declare global {
18628
18750
  * ---
18629
18751
  * The Checkbox allows users to select one or more items from a set and can be used to enable or disable an option.
18630
18752
  *
18631
- See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/input/checkbox) for more details.
18753
+ * Features hybrid behavior:
18754
+ * - **Controlled mode**: When `checked` prop is provided, works like React controlled component
18755
+ * - **Native mode**: When `checked` prop is not provided, works like native HTML checkbox
18756
+ *
18757
+ * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/input/checkbox) for more details.
18632
18758
  */
18633
- type CheckboxProperties = Partial<CheckboxProps>;
18759
+ type CheckboxManifestProperties = CheckboxProps & {
18760
+ /**
18761
+ * Controls the checked state of the checkbox.
18762
+ *
18763
+ * **Hybrid Behavior:**
18764
+ * - When provided: Checkbox works in controlled mode - external prop controls the state
18765
+ * - When not provided: Checkbox works in native mode - maintains its own internal state
18766
+ *
18767
+ * @default undefined (native mode)
18768
+ */
18769
+ checked?: boolean;
18770
+ /**
18771
+ * Makes the checkbox read-only, preventing user interaction.
18772
+ * When true, the checkbox displays its current state but cannot be changed by clicking.
18773
+ *
18774
+ * @default false
18775
+ */
18776
+ readonly?: boolean;
18777
+ };
18778
+ type CheckboxProperties = WebComponentProperties<CheckboxManifestProperties>;
18634
18779
 
18635
18780
  declare class RaruiCheckbox extends LitElement {
18636
18781
  label?: CheckboxProperties["label"];
@@ -18638,7 +18783,14 @@ declare class RaruiCheckbox extends LitElement {
18638
18783
  error: CheckboxProperties["error"];
18639
18784
  indeterminate: CheckboxProperties["indeterminate"];
18640
18785
  disabled: boolean;
18786
+ checked: boolean;
18787
+ private _hasCheckedAttribute;
18788
+ readonly: boolean;
18789
+ private input;
18641
18790
  static styles: CSSResult;
18791
+ connectedCallback(): void;
18792
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
18793
+ updated(changedProperties: Map<string, any>): void;
18642
18794
  render(): TemplateResult<1>;
18643
18795
  private _onChange;
18644
18796
  }
@@ -18655,13 +18807,14 @@ declare global {
18655
18807
  *
18656
18808
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/input/button) for more details.
18657
18809
  */
18658
- type ChipProperties = Partial<ChipProps> & {
18810
+ type ChipManifestProperties = ChipProps & {
18659
18811
  /**
18660
18812
  * Disables the chip, disallowing user interaction.
18661
18813
  * @default false
18662
18814
  */
18663
18815
  disabled?: boolean;
18664
18816
  };
18817
+ type ChipProperties = WebComponentProperties<ChipManifestProperties>;
18665
18818
 
18666
18819
  declare class RaruiChip extends LitElement {
18667
18820
  sprinkleAttrs: Record<string, string>;
@@ -18669,8 +18822,8 @@ declare class RaruiChip extends LitElement {
18669
18822
  size?: ChipProperties["size"];
18670
18823
  closeable: ChipProperties["closeable"];
18671
18824
  pill: ChipProperties["pill"];
18672
- textTransform?: ChipProperties["textTransform"];
18673
- textOverflow?: ChipProperties["textOverflow"];
18825
+ textTransform?: ChipProperties["text-transform"];
18826
+ textOverflow?: ChipProperties["text-overflow"];
18674
18827
  selected?: ChipProperties["selected"];
18675
18828
  disabled?: ChipProperties["disabled"];
18676
18829
  static styles: CSSResult;
@@ -18689,9 +18842,13 @@ declare global {
18689
18842
  * ---
18690
18843
  * An suspended menu displays a list of options on a temporary surface.
18691
18844
  *
18692
- See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/input/dropdown) for more details.
18845
+ * Features hybrid behavior:
18846
+ * - **Controlled mode**: When `visible` prop is provided, works like React controlled component
18847
+ * - **Native mode**: When `visible` prop is not provided, manages its own internal state
18848
+ *
18849
+ * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/input/dropdown) for more details.
18693
18850
  */
18694
- type DropdownProperties = Omit<Partial<DropdownProps>, "onVisibility" | "portalId"> & {
18851
+ type DropdownManifestProperties = DropdownProps & {
18695
18852
  /**
18696
18853
  * Position of the dropdown.
18697
18854
  * @default bottom-start
@@ -18710,7 +18867,18 @@ type DropdownProperties = Omit<Partial<DropdownProps>, "onVisibility" | "portalI
18710
18867
  * @default fixed
18711
18868
  */
18712
18869
  strategy?: "fixed" | "absolute";
18870
+ /**
18871
+ * Controls the visibility state of the dropdown.
18872
+ *
18873
+ * **Hybrid Behavior:**
18874
+ * - When provided: Dropdown works in controlled mode - external prop controls the state
18875
+ * - When not provided: Dropdown works in native mode - manages its own internal state
18876
+ *
18877
+ * @default undefined (native mode)
18878
+ */
18879
+ visible?: boolean;
18713
18880
  };
18881
+ type DropdownProperties = WebComponentProperties<DropdownManifestProperties, "onVisibility" | "portalId">;
18714
18882
 
18715
18883
  declare class RaruiDropdown extends LitElement {
18716
18884
  sprinkleAttrs: Record<string, string>;
@@ -18718,24 +18886,28 @@ declare class RaruiDropdown extends LitElement {
18718
18886
  padding: DropdownProperties["padding"];
18719
18887
  position: DropdownProperties["position"];
18720
18888
  strategy: DropdownProperties["strategy"];
18721
- matchReferenceWidth?: DropdownProperties["matchReferenceWidth"];
18722
- enabledFlip?: DropdownProperties["enabledFlip"];
18723
- enabledClick: DropdownProperties["enabledClick"];
18724
- enabledDismiss: DropdownProperties["enabledDismiss"];
18889
+ matchReferenceWidth?: DropdownProperties["match-reference-width"];
18890
+ enabledFlip?: DropdownProperties["enabled-flip"];
18891
+ enabledClick: DropdownProperties["enabled-click"];
18892
+ enabledDismiss: DropdownProperties["enabled-dismiss"];
18725
18893
  open: boolean;
18726
18894
  set visible(value: boolean | undefined);
18727
18895
  get visible(): boolean | undefined;
18728
18896
  private _visible?;
18897
+ private _hasVisibleAttribute;
18729
18898
  reference: HTMLElement;
18730
18899
  floating: HTMLElement;
18731
18900
  static styles: CSSResult;
18732
18901
  cleanupAutoUpdate?: () => void;
18733
18902
  private updatePositionDebounceId;
18734
18903
  connectedCallback(): void;
18904
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
18735
18905
  disconnectedCallback(): void;
18736
18906
  updated(changed: Map<string, any>): void;
18737
18907
  private scheduleUpdatePosition;
18738
18908
  private handleClickOutside;
18909
+ private handleKeyDown;
18910
+ private closeDropdown;
18739
18911
  private handleClick;
18740
18912
  updatePosition(): Promise<void>;
18741
18913
  private getMiddleware;
@@ -18755,11 +18927,13 @@ declare global {
18755
18927
  *
18756
18928
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/surface/dropdown) for more details.
18757
18929
  */
18758
- type DropdownItemProperties = Omit<DropdownItemProps, "icon">;
18930
+ type DropdownItemManifestProperties = DropdownItemProps;
18931
+ type DropdownItemProperties = WebComponentProperties<DropdownItemManifestProperties>;
18759
18932
 
18760
18933
  declare class RaruiDropdownItem extends LitElement {
18761
18934
  name: DropdownItemProperties["name"];
18762
18935
  selected: DropdownItemProperties["selected"];
18936
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
18763
18937
  static styles: CSSResult;
18764
18938
  render(): TemplateResult<1>;
18765
18939
  }
@@ -18776,7 +18950,8 @@ declare global {
18776
18950
  *
18777
18951
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/input/button) for more details.
18778
18952
  */
18779
- type IconButtonProperties = Partial<IconButtonProps>;
18953
+ type IconButtonManifestProperties = IconButtonProps;
18954
+ type IconButtonProperties = WebComponentProperties<IconButtonManifestProperties>;
18780
18955
 
18781
18956
  declare class RaruiIconButton extends LitElement {
18782
18957
  size: IconButtonProperties["size"];
@@ -18800,7 +18975,7 @@ declare global {
18800
18975
  *
18801
18976
  * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/input/input) for more details.
18802
18977
  */
18803
- type InputProperties = Partial<InputProps> & {
18978
+ type InputManifestProperties = InputProps & {
18804
18979
  /**
18805
18980
  * The value of the input element.
18806
18981
  */
@@ -18815,6 +18990,7 @@ type InputProperties = Partial<InputProps> & {
18815
18990
  */
18816
18991
  disabled?: boolean;
18817
18992
  };
18993
+ type InputProperties = WebComponentProperties<InputManifestProperties>;
18818
18994
 
18819
18995
  declare class RaruiInput extends LitElement {
18820
18996
  size: InputProperties["size"];
@@ -18845,7 +19021,7 @@ declare global {
18845
19021
  *
18846
19022
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/input/radiobutton) for more details.
18847
19023
  */
18848
- type RadioButtonProperties = Partial<RadioButtonProps> & {
19024
+ type RadioButtonManifestProperties = RadioButtonProps & {
18849
19025
  /**
18850
19026
  * Defines a unique identifier (ID) which must be unique in the whole document.
18851
19027
  * Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS).
@@ -18857,6 +19033,7 @@ type RadioButtonProperties = Partial<RadioButtonProps> & {
18857
19033
  */
18858
19034
  disabled?: boolean;
18859
19035
  };
19036
+ type RadioButtonProperties = WebComponentProperties<RadioButtonManifestProperties>;
18860
19037
 
18861
19038
  declare class RaruiRadioButton extends LitElement {
18862
19039
  id: string;
@@ -18871,6 +19048,12 @@ declare class RaruiRadioButton extends LitElement {
18871
19048
  private _onChange;
18872
19049
  }
18873
19050
 
19051
+ declare global {
19052
+ interface HTMLElementTagNameMap {
19053
+ "rarui-select": any;
19054
+ }
19055
+ }
19056
+
18874
19057
  declare global {
18875
19058
  interface HTMLElementTagNameMap {
18876
19059
  "rarui-textarea": RaruiTextarea;
@@ -18883,13 +19066,14 @@ declare global {
18883
19066
  *
18884
19067
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/input/textarea) for more details.
18885
19068
  */
18886
- type TextareaProperties = Partial<TextareaProps> & {
19069
+ type TextareaManifestProperties = TextareaProps & {
18887
19070
  /**
18888
19071
  * Disables the Textarea, disallowing user interaction.
18889
19072
  * @default false
18890
19073
  */
18891
19074
  disabled?: boolean;
18892
19075
  };
19076
+ type TextareaProperties = WebComponentProperties<TextareaManifestProperties>;
18893
19077
 
18894
19078
  declare class RaruiTextarea extends LitElement {
18895
19079
  disabled: boolean;
@@ -18913,7 +19097,7 @@ declare global {
18913
19097
  *
18914
19098
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/input/toggle) for more details.
18915
19099
  */
18916
- type ToggleProperties = Partial<ToggleProps> & {
19100
+ type ToggleManifestProperties = ToggleProps & {
18917
19101
  /**
18918
19102
  * Defines if Toggle is disabled.
18919
19103
  * When `true`, the component cannot be interacted.
@@ -18926,6 +19110,7 @@ type ToggleProperties = Partial<ToggleProps> & {
18926
19110
  */
18927
19111
  id?: string;
18928
19112
  };
19113
+ type ToggleProperties = WebComponentProperties<ToggleManifestProperties>;
18929
19114
 
18930
19115
  declare class RaruiToggle extends LitElement {
18931
19116
  name: ToggleProperties["name"];
@@ -18939,6 +19124,48 @@ declare class RaruiToggle extends LitElement {
18939
19124
  render(): TemplateResult<1>;
18940
19125
  }
18941
19126
 
19127
+ declare global {
19128
+ interface HTMLElementTagNameMap {
19129
+ "rarui-sidebar": RaruiSidebar;
19130
+ }
19131
+ }
19132
+ /**
19133
+ * ## Rarui Sidebar
19134
+ * ---
19135
+ * A sidebar component that slides in from the left or right side of the screen, with floating-ui positioning for responsive behavior.
19136
+ *
19137
+ * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/layout/sidebar) for more details.
19138
+ */
19139
+ type SidebarManifestProperties = SidebarProps;
19140
+ type SidebarProperties = WebComponentProperties<SidebarManifestProperties, "onRemove">;
19141
+
19142
+ declare class RaruiSidebar extends LitElement {
19143
+ sprinkleAttrs: Record<string, string>;
19144
+ open: SidebarProperties["open"];
19145
+ position: SidebarProperties["position"];
19146
+ maxWidth: SidebarProperties["max-width"];
19147
+ padding: SidebarProperties["padding"];
19148
+ portalId: SidebarProperties["portal-id"];
19149
+ sidebarElement: HTMLElement;
19150
+ overlayElement: HTMLElement;
19151
+ static styles: CSSResult;
19152
+ cleanupAutoUpdate?: () => void;
19153
+ connectedCallback(): void;
19154
+ disconnectedCallback(): void;
19155
+ firstUpdated(): void;
19156
+ updated(changed: Map<string, any>): void;
19157
+ private getPortalRoot;
19158
+ private scheduleUpdatePosition;
19159
+ private handleKeyDown;
19160
+ private handleClickOutside;
19161
+ private dismiss;
19162
+ updatePosition(): Promise<void>;
19163
+ private getMiddleware;
19164
+ computePosition(virtualReference?: any): Promise<void>;
19165
+ private createVirtualReference;
19166
+ render(): TemplateResult<1>;
19167
+ }
19168
+
18942
19169
  declare global {
18943
19170
  interface HTMLElementTagNameMap {
18944
19171
  "rarui-breadcrumb": RaruiBreadcrumb;
@@ -18951,14 +19178,8 @@ declare global {
18951
19178
  *
18952
19179
  * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/navigation/breadcrumb) for more details.
18953
19180
  */
18954
- interface BreadcrumbProperties {
18955
- /**
18956
- * Especifica o número de itens do breadcrumb a serem exibidos após o truncamento.
18957
- * Útil para gerenciar a exibição de listas longas de breadcrumb.
18958
- * @default 10
18959
- */
18960
- "items-after-truncate"?: number;
18961
- }
19181
+ type BreadcrumbManifestProperties = BreadcrumbProps;
19182
+ type BreadcrumbProperties = WebComponentProperties<BreadcrumbManifestProperties>;
18962
19183
 
18963
19184
  declare class RaruiBreadcrumb extends LitElement {
18964
19185
  itemsAfterTruncate: BreadcrumbProperties["items-after-truncate"];
@@ -18991,7 +19212,7 @@ declare global {
18991
19212
  *
18992
19213
  * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/navigation/breadcrumb-item) for more details.
18993
19214
  */
18994
- type BreadcrumbItemProperties = BreadcrumbItemProps & {
19215
+ type BreadcrumbItemManifestProperties = BreadcrumbItemProps & {
18995
19216
  /**
18996
19217
  * Nome do item do breadcrumb exibido como texto.
18997
19218
  */
@@ -19006,6 +19227,7 @@ type BreadcrumbItemProperties = BreadcrumbItemProps & {
19006
19227
  */
19007
19228
  as?: "button" | "a";
19008
19229
  };
19230
+ type BreadcrumbItemProperties = WebComponentProperties<BreadcrumbItemManifestProperties>;
19009
19231
 
19010
19232
  declare class RaruiBreadcrumbItem extends LitElement {
19011
19233
  name?: BreadcrumbItemProperties["name"];
@@ -19031,7 +19253,7 @@ declare global {
19031
19253
  *
19032
19254
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/navigation/link) for more details.
19033
19255
  */
19034
- type LinkProperties = Partial<LinkProps> & {
19256
+ type LinkManifestProperties = LinkProps & {
19035
19257
  /**
19036
19258
  * Defines the native type of the button.
19037
19259
  * It can be `Button`, `submit` or `reset`.
@@ -19059,6 +19281,7 @@ type LinkProperties = Partial<LinkProps> & {
19059
19281
  */
19060
19282
  href?: string;
19061
19283
  };
19284
+ type LinkProperties = WebComponentProperties<LinkManifestProperties>;
19062
19285
 
19063
19286
  declare class RaruiLink extends LitElement {
19064
19287
  type: LinkProperties["type"];
@@ -19083,14 +19306,15 @@ declare global {
19083
19306
  *
19084
19307
  * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/navigation/pagination) for more details.
19085
19308
  */
19086
- type PaginationProperties = Partial<Omit<PaginationProps, "onPageChange">>;
19309
+ type PaginationManifestProperties = PaginationProps;
19310
+ type PaginationProperties = WebComponentProperties<PaginationManifestProperties, "onPageChange">;
19087
19311
 
19088
19312
  declare class RaruiPagination extends LitElement {
19089
- activePage: PaginationProperties["activePage"];
19090
- pageCount: PaginationProperties["pageCount"];
19313
+ activePage: PaginationProperties["active-page"];
19314
+ pageCount: PaginationProperties["page-count"];
19091
19315
  size?: PaginationProperties["size"];
19092
- showNumbers: PaginationProperties["showNumbers"];
19093
- showArrows: PaginationProperties["showArrows"];
19316
+ showNumbers: PaginationProperties["show-numbers"];
19317
+ showArrows: PaginationProperties["show-arrows"];
19094
19318
  static styles: CSSResult;
19095
19319
  private handlePageChange;
19096
19320
  render(): TemplateResult<1>;
@@ -19113,7 +19337,7 @@ declare global {
19113
19337
  *
19114
19338
  * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/navigation/side-navigation) for more details.
19115
19339
  */
19116
- type SideNavigationProperties = Partial<SideNavigationProps> & {
19340
+ type SideNavigationManifestProperties = SideNavigationProps & {
19117
19341
  /**
19118
19342
  * Whether the navigation item is disabled.
19119
19343
  * @default false
@@ -19130,6 +19354,7 @@ type SideNavigationProperties = Partial<SideNavigationProps> & {
19130
19354
  */
19131
19355
  as?: "button" | "a";
19132
19356
  };
19357
+ type SideNavigationProperties = WebComponentProperties<SideNavigationManifestProperties>;
19133
19358
 
19134
19359
  declare class RaruiSideNavigation extends LitElement {
19135
19360
  name: SideNavigationProperties["name"];
@@ -19160,13 +19385,14 @@ declare global {
19160
19385
  *
19161
19386
  * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/navigation/side-navigation) for more details.
19162
19387
  */
19163
- type SideNavigationItemProperties = Partial<SideNavigationItemProps> & {
19388
+ type SideNavigationItemManifestProperties = SideNavigationItemProps & {
19164
19389
  /**
19165
19390
  * The HTML element type to render.
19166
19391
  * @default "button"
19167
19392
  */
19168
19393
  as?: "button" | "a";
19169
19394
  };
19395
+ type SideNavigationItemProperties = WebComponentProperties<SideNavigationItemManifestProperties>;
19170
19396
 
19171
19397
  declare class RaruiSideNavigationItem extends LitElement {
19172
19398
  active: SideNavigationItemProperties["active"];
@@ -19190,13 +19416,8 @@ declare global {
19190
19416
  *
19191
19417
  * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/surface/accordion) for more details.
19192
19418
  */
19193
- type AccordionProperties = Pick<AccordionProps, "disabled"> & {
19194
- /**
19195
- * Informs which accordion item is open by default.
19196
- * @default ""
19197
- */
19198
- "selected-default"?: string;
19199
- };
19419
+ type AccordionManifestProperties = AccordionProps;
19420
+ type AccordionProperties = WebComponentProperties<AccordionManifestProperties>;
19200
19421
 
19201
19422
  declare class RaruiAccordion extends LitElement {
19202
19423
  sprinkleAttrs: Record<string, string>;
@@ -19225,7 +19446,8 @@ declare global {
19225
19446
  *
19226
19447
  * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/surface/accordion) for more details.
19227
19448
  */
19228
- type AccordionItemProperties = Pick<AccordionItemProps, "index">;
19449
+ type AccordionItemManifestProperties = AccordionItemProps;
19450
+ type AccordionItemProperties = WebComponentProperties<AccordionItemManifestProperties>;
19229
19451
 
19230
19452
  declare class RaruiAccordionItem extends LitElement {
19231
19453
  index: AccordionItemProperties["index"];
@@ -19249,13 +19471,8 @@ declare global {
19249
19471
  *
19250
19472
  * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/surface/accordion) for more details.
19251
19473
  */
19252
- type AccordionHeaderProperties = Pick<AccordionHeaderProps, "size" | "subtitle" | "title"> & {
19253
- /**
19254
- * Removes the arrow icon that shows if the accordion item is open or not which makes it possible to create a custom indicator.
19255
- * @default false
19256
- */
19257
- "no-icon-toggle"?: boolean;
19258
- };
19474
+ type AccordionHeaderManifestProperties = AccordionHeaderProps;
19475
+ type AccordionHeaderProperties = WebComponentProperties<AccordionHeaderManifestProperties>;
19259
19476
 
19260
19477
  declare class RaruiAccordionHeader extends LitElement {
19261
19478
  title: NonNullable<AccordionHeaderProperties["title"]>;
@@ -19283,7 +19500,8 @@ declare global {
19283
19500
  *
19284
19501
  * See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/surface/accordion) for more details.
19285
19502
  */
19286
- type AccordionBodyProperties = Partial<AccordionBodyProps>;
19503
+ type AccordionBodyManifestProperties = AccordionBodyProps;
19504
+ type AccordionBodyProperties = WebComponentProperties<AccordionBodyManifestProperties>;
19287
19505
 
19288
19506
  declare class RaruiAccordionBody extends LitElement {
19289
19507
  padding: AccordionBodyProperties["padding"];
@@ -19304,7 +19522,7 @@ declare global {
19304
19522
  *
19305
19523
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/surface/banner) for more details.
19306
19524
  */
19307
- type BannerProperties = Partial<Pick<BannerProps, "appearance" | "floating">> & {
19525
+ type BannerManifestProperties = BannerProps & {
19308
19526
  /**
19309
19527
  * If `true`, display the closing button in the upper right corner of the banner.
19310
19528
  * When clicked, it fires the `close` event that can be listened to externally.
@@ -19313,6 +19531,7 @@ type BannerProperties = Partial<Pick<BannerProps, "appearance" | "floating">> &
19313
19531
  */
19314
19532
  closable?: boolean;
19315
19533
  };
19534
+ type BannerProperties = WebComponentProperties<BannerManifestProperties, "onClose">;
19316
19535
 
19317
19536
  declare class RaruiBanner extends LitElement {
19318
19537
  appearance?: BannerProperties["appearance"];
@@ -19335,7 +19554,8 @@ declare global {
19335
19554
  *
19336
19555
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/surface/card) for more details.
19337
19556
  */
19338
- type CardHeaderProperties = Partial<CardHeaderProps>;
19557
+ type CardHeaderManifestProperties = CardHeaderProps;
19558
+ type CardHeaderProperties = WebComponentProperties<CardHeaderManifestProperties>;
19339
19559
 
19340
19560
  declare class RaruiCardHeader extends LitElement {
19341
19561
  sprinkleAttrs: Record<string, string>;
@@ -19356,12 +19576,13 @@ declare global {
19356
19576
  *
19357
19577
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/surface/card) for more details.
19358
19578
  */
19359
- type CardProperties = Partial<CardProps>;
19579
+ type CardManifestProperties = CardProps;
19580
+ type CardProperties = WebComponentProperties<CardManifestProperties>;
19360
19581
 
19361
19582
  declare class RaruiCard extends LitElement {
19362
19583
  sprinkleAttrs: Record<string, string>;
19363
19584
  padding?: CardProperties["padding"];
19364
- "background-color": CardProperties["backgroundColor"];
19585
+ "background-color": CardProperties["background-color"];
19365
19586
  static styles: CSSResult;
19366
19587
  render(): TemplateResult<1>;
19367
19588
  }
@@ -19378,14 +19599,15 @@ declare global {
19378
19599
  *
19379
19600
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/surface/modal) for more details.
19380
19601
  */
19381
- type ModalProperties = Omit<Partial<ModalProps>, "onDismiss">;
19602
+ type ModalManifestProperties = ModalProps;
19603
+ type ModalProperties = WebComponentProperties<ModalManifestProperties, "onDismiss">;
19382
19604
 
19383
19605
  declare class RaruiModal extends LitElement {
19384
19606
  sprinkleAttrs: Record<string, string>;
19385
19607
  padding: ModalProperties["padding"];
19386
- portalId: ModalProperties["portalId"];
19608
+ portalId: ModalProperties["portal-id"];
19387
19609
  open: ModalProperties["open"];
19388
- maxWidth: ModalProperties["maxWidth"];
19610
+ maxWidth: ModalProperties["max-width"];
19389
19611
  dialog: HTMLElement;
19390
19612
  static styles: CSSResult;
19391
19613
  cleanupAutoUpdate?: () => void;
@@ -19411,7 +19633,8 @@ declare global {
19411
19633
  *
19412
19634
  See [a complete document](https://rarui.rarolabs.com.br/docs/components-web-components/surface/modal) for more details.
19413
19635
  */
19414
- type ModalHeaderProperties = ModalHeaderProps;
19636
+ type ModalHeaderManifestProperties = ModalHeaderProps;
19637
+ type ModalHeaderProperties = WebComponentProperties<ModalHeaderManifestProperties>;
19415
19638
 
19416
19639
  declare class RaruiModalHeader extends LitElement {
19417
19640
  title: string;