{
  "schemaVersion": "1.0.0",
  "readme": "README.md",
  "modules": [
    {
      "kind": "javascript-module",
      "path": "lib/jb-calendar.ts",
      "declarations": [
        {
          "kind": "class",
          "description": "Jalali and Gregorian calendar picker web component with day, month, and year navigation, date restrictions, localized month/day labels, RTL/LTR support, and CSS variable customization.",
          "name": "JBCalendarWebComponent",
          "tagName": "jb-calendar",
          "customElement": true,
          "superclass": {
            "name": "HTMLElement"
          },
          "attributes": [],
          "members": [
            {
              "kind": "field",
              "name": "value",
              "description": "Selected calendar date in the active input type. Set year, month, and day together.",
              "type": {
                "text": "JBCalendarValue"
              }
            },
            {
              "kind": "field",
              "name": "inputType",
              "description": "Calendar date system used for input and displayed values.",
              "type": {
                "text": "'JALALI' | 'GREGORIAN'"
              }
            },
            {
              "kind": "field",
              "name": "activeSection",
              "description": "Visible selection section: day grid, month grid, or year grid.",
              "type": {
                "text": "'DAY' | 'MONTH' | 'YEAR'"
              }
            },
            {
              "kind": "field",
              "name": "showPersianNumber",
              "description": "When true, renders calendar numbers with Persian digits.",
              "type": {
                "text": "boolean"
              }
            },
            {
              "kind": "field",
              "name": "direction",
              "description": "Calendar layout direction. Set to rtl or ltr, or leave unset to use computed CSS direction.",
              "type": {
                "text": "'rtl' | 'ltr'"
              }
            },
            {
              "kind": "field",
              "name": "cssDirection",
              "description": "Computed CSS direction of the host element.",
              "type": {
                "text": "'rtl' | 'ltr'"
              },
              "readonly": true
            },
            {
              "kind": "field",
              "name": "defaultCalendarData",
              "description": "Default visible Jalali and Gregorian year/month used when no value is selected.",
              "type": {
                "text": "{ jalali: { year: number; month: number }; gregorian: { year: number; month: number } }"
              }
            },
            {
              "kind": "field",
              "name": "dateRestrictions",
              "description": "Mutable min/max Date restrictions. Set dateRestrictions.min and dateRestrictions.max.",
              "type": {
                "text": "JBCalendarDateRestrictions"
              }
            },
            {
              "kind": "field",
              "name": "data",
              "description": "Internal visible calendar data: selectedYear, selectedMonth, and yearSelectionRange.",
              "type": {
                "text": "JBCalendarData"
              }
            }
          ],
          "methods": [
            {
              "name": "select",
              "description": "Selects a date in the current inputType and updates value.",
              "parameters": [
                {
                  "name": "year",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "month",
                  "type": {
                    "text": "number"
                  }
                },
                {
                  "name": "day",
                  "type": {
                    "text": "number"
                  }
                }
              ]
            },
            {
              "name": "selectToday",
              "description": "Selects today in the current inputType."
            },
            {
              "name": "setMonthList",
              "description": "Overrides the 12 month labels for JALALI or GREGORIAN calendars.",
              "parameters": [
                {
                  "name": "inputType",
                  "type": {
                    "text": "'JALALI' | 'GREGORIAN'"
                  }
                },
                {
                  "name": "monthList",
                  "type": {
                    "text": "string[]"
                  }
                }
              ]
            },
            {
              "name": "setupStyleBaseOnCssDirection",
              "description": "Refreshes direction-sensitive layout classes from the provided direction or computed host direction.",
              "parameters": [
                {
                  "name": "dir",
                  "type": {
                    "text": "'rtl' | 'ltr'"
                  }
                }
              ]
            },
            {
              "name": "checkIsDayDisable",
              "description": "Checks whether a Date is valid against dateRestrictions.min and dateRestrictions.max.",
              "parameters": [
                {
                  "name": "dayDate",
                  "type": {
                    "text": "Date"
                  }
                }
              ],
              "return": {
                "type": {
                  "text": "{ min: boolean; max: boolean; isAllValid: boolean }"
                }
              }
            }
          ],
          "events": [
            {
              "name": "init",
              "description": "Dispatched during construction after default properties are initialized. Use it for early configuration when listening before construction is possible."
            },
            {
              "name": "load",
              "description": "Dispatched from connectedCallback before layout initialization."
            },
            {
              "name": "select",
              "description": "Dispatched when the user selects an enabled day. The event has no detail; read event.target.value."
            }
          ],
          "slots": [],
          "cssParts": [
            {
              "name": "root",
              "description": "Root calendar wrapper inside the shadow DOM."
            },
            {
              "name": "navigator",
              "description": "Top navigator section."
            },
            {
              "name": "arrow-button",
              "description": "Shared navigator arrow button part."
            },
            {
              "name": "prev-button",
              "description": "Previous navigator arrow button."
            },
            {
              "name": "next-button",
              "description": "Next navigator arrow button."
            },
            {
              "name": "navigator-title",
              "description": "Navigator title wrapper."
            },
            {
              "name": "navigator-month",
              "description": "Navigator month label."
            },
            {
              "name": "navigator-year",
              "description": "Navigator year label."
            },
            {
              "name": "navigator-year-range",
              "description": "Navigator year range label."
            },
            {
              "name": "calendar",
              "description": "Calendar selection area wrapper."
            },
            {
              "name": "day-section",
              "description": "Day selection section."
            },
            {
              "name": "week-day-wrapper",
              "description": "Weekday label row wrapper."
            },
            {
              "name": "week-day",
              "description": "Weekday label item."
            },
            {
              "name": "month-day-container",
              "description": "Container for month day wrappers."
            },
            {
              "name": "month-day-wrapper",
              "description": "Shared wrapper for day grid pages."
            },
            {
              "name": "current-month-day-wrapper",
              "description": "Current month day grid wrapper."
            },
            {
              "name": "prev-month-day-wrapper",
              "description": "Previous month day grid wrapper."
            },
            {
              "name": "next-month-day-wrapper",
              "description": "Next month day grid wrapper."
            },
            {
              "name": "empty-day",
              "description": "Empty day grid placeholder."
            },
            {
              "name": "day",
              "description": "Day item wrapper."
            },
            {
              "name": "today-day",
              "description": "Day item when it represents today."
            },
            {
              "name": "selected-day",
              "description": "Day item when it is selected."
            },
            {
              "name": "disabled-day",
              "description": "Day item when it is disabled by date restrictions."
            },
            {
              "name": "day-button",
              "description": "Day clickable visual surface."
            },
            {
              "name": "day-number",
              "description": "Day number label."
            },
            {
              "name": "status-point",
              "description": "Today status point marker."
            },
            {
              "name": "month-section",
              "description": "Month selection section."
            },
            {
              "name": "month",
              "description": "Month item wrapper."
            },
            {
              "name": "month-name",
              "description": "Month item label."
            },
            {
              "name": "year-section",
              "description": "Year selection section."
            },
            {
              "name": "years-wrapper",
              "description": "Shared wrapper for year grid pages."
            },
            {
              "name": "current-years-wrapper",
              "description": "Current year grid wrapper."
            },
            {
              "name": "prev-years-wrapper",
              "description": "Previous year grid wrapper."
            },
            {
              "name": "next-years-wrapper",
              "description": "Next year grid wrapper."
            },
            {
              "name": "year",
              "description": "Year item wrapper."
            },
            {
              "name": "year-number",
              "description": "Year item label."
            },
            {
              "name": "swipe-up",
              "description": "Swipe-up hint wrapper."
            },
            {
              "name": "swipe-up-icon",
              "description": "Swipe-up hint icon."
            },
            {
              "name": "swipe-up-text",
              "description": "Swipe-up hint text."
            }
          ],
          "cssProperties": [
            {
              "name": "--jb-calendar-color",
              "description": "General text color."
            },
            {
              "name": "--jb-calendar-arrow-fill-color",
              "description": "Navigator arrow icon color."
            },
            {
              "name": "--jb-calendar-day-text-color",
              "description": "Normal day text color."
            },
            {
              "name": "--jb-calendar-day-text-color-disabled",
              "description": "Disabled day text color."
            },
            {
              "name": "--jb-calendar-day-text-color-today",
              "description": "Today day text color."
            },
            {
              "name": "--jb-calendar-day-bg-color-selected",
              "description": "Selected day background color."
            },
            {
              "name": "--jb-calendar-day-color-selected",
              "description": "Selected day text color."
            },
            {
              "name": "--jb-calendar-day-bg-color-selected-hover",
              "description": "Selected day hover background color."
            },
            {
              "name": "--jb-calendar-day-color-selected-hover",
              "description": "Selected day hover text color."
            },
            {
              "name": "--jb-calendar-day-bg-color-hover",
              "description": "Day hover background color."
            },
            {
              "name": "--jb-calendar-day-color-hover",
              "description": "Day hover text color."
            },
            {
              "name": "--jb-calendar-day-button-border-radius",
              "description": "Day button border radius."
            },
            {
              "name": "--jb-calendar-status-point-bg-color-today",
              "description": "Today status point background color."
            },
            {
              "name": "--jb-calendar-status-point-border-color",
              "description": "Today status point border color."
            },
            {
              "name": "--jb-calendar-month-bg-color-hover",
              "description": "Month hover background color."
            },
            {
              "name": "--jb-calendar-month-color-hover",
              "description": "Month hover text color."
            },
            {
              "name": "--jb-calendar-month-button-border-radius",
              "description": "Month button border radius."
            },
            {
              "name": "--jb-calendar-year-bg-color-hover",
              "description": "Year hover background color."
            },
            {
              "name": "--jb-calendar-year-color-hover",
              "description": "Year hover text color."
            },
            {
              "name": "--jb-calendar-year-button-border-radius",
              "description": "Year button border radius."
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "JBCalendarWebComponent",
          "declaration": {
            "name": "JBCalendarWebComponent",
            "module": "lib/jb-calendar.ts"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "jb-calendar",
          "declaration": {
            "name": "JBCalendarWebComponent",
            "module": "lib/jb-calendar.ts"
          }
        }
      ]
    }
  ]
}
